获取3天前的日期

时间:2015-08-06 09:33:38

标签: sql sql-server

我有SQL脚本,可以从当天开始选择所有内容。

SELECT  [ClientID] from [logs] where Date > CONVERT (date, SYSDATETIME())

日期是DateTime的类型。

如何在最近3天内获得所有内容?我想我需要从函数SYSDATETIME()结果中减去3天,但是如何?

6 个答案:

答案 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)

更多参考资料:

GETDATE Detailed Documentation

答案 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())