sql - 如何获取到今天为止 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')
需要您的专业知识来帮助我完成此查询
谢谢!
解决方案
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())
我想这会对你有所帮助
推荐阅读
- r-markdown - 当我已经多次引用它时,为什么我的 rmarkdown/papaja 不抑制以下作者姓名(因为它需要 APA 样式)?
- android - 数据绑定对象设置内容视图,但实际上为空
- arrays - 快速过滤数组中给定的特定元素
- python - Python if 带括号的条件
- javascript - d3工具提示和画笔不能一起工作
- office-js - 我需要测试共享 JavaScript 运行时的 Office 2019 的最低版本或构建版本是多少?
- jquery - 完整日历呈现错误的结束日期
- sql - 如何比较两个表并在比较后在表A中插入值
- javascript - 有没有办法用猫鼬更新用户信息?
- reactjs - 如何使用 react redux 更改数组内对象的值?