我有SQL脚本,可以从当天开始选择所有内容。
SELECT [ClientID] from [logs] where Date > CONVERT (date, SYSDATETIME())
日期是DateTime的类型。
如何在最近3天内获得所有内容?我想我需要从函数SYSDATETIME()
结果中减去3天,但是如何?
答案 0 :(得分:9)
SELECT [ClientID] from [logs] where Date > DATEADD(day, -3, CONVERT (date, SYSDATETIME()))
答案 1 :(得分:4)
使用GETDATE()
:是的,它从系统获取日期!
将当前数据库系统时间戳记作为日期时间值返回 没有数据库时区偏移量。此值派生自 计算机的操作系统上的SQL Server实例 正在运行。
查询:
SELECT [ClientID] from [logs] where ( Date > GETDATE() - 3)
更多参考资料:
答案 2 :(得分:2)
对于mysql使用此:
SELECT DATE_ADD(CURRENT_DATE, INTERVAL - 3 DAY);
答案 3 :(得分:1)
使用BETWEEN
SELECT ClientID
FROM logs
WHERE Date BETWEEN SYSDATETIME() AND SYSDATETIME() - 3
答案 4 :(得分:0)
使用BETWEEN很不错。我也更喜欢DATEADD函数。但请注意,SYSDATETIME函数(或者我将GETDATE())还包括时间,这意味着可能不包括当前时间之前但在三天内的事件。您可能需要将双方转换为日期而不是日期时间。
答案 5 :(得分:0)
SELECT [ClientID] from [logs] where Date > DATEADD(day, -3, SYSDATETIME())