首页 > 解决方案 > 如何获取到今天为止 30 天内的更新记录?

问题描述

我有一个关于 SQL Server 的小问题:如何从table1的该列中获取最近 30 天的信息:

created_at 更新时间
2020-02-05T01:25:42Z 2020-02-05T01:25:42Z
2020-05-05T02:31:56Z 2020-05-05T02:31:56Z

使用上述数据,我需要 30 天内的天数。

我努力了

SELECT * FROM table1 
DATEDIFF(CAST(SUBSTR(updated_at,1,10)) AS VARCHAR,CURRENT_TIMESTAMP) BETWEEN 0 AND 30 ;

SELECT * FROM table1
WHERE updated_at BETWEEN DATETIME('now', '-30 days') AND DATETIME('now', 'localtime')

需要您的专业知识来帮助我完成此查询

谢谢!

标签: sqlsql-server

解决方案


SELECT *
FROM (
    SELECT otherColumns
        , DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), updated_at) AS updated_at
    FROM table1
) b
WHERE CAST(b.updated_at AS DATE) >= DATEADD(DAY,-30,GETDATE()) 

我想这会对你有所帮助


推荐阅读