GetDate()函数和这个查询是否正确?

时间:2013-07-08 19:38:33

标签: php sql-server

以下查询是否正确且更具体TransferTime < (GetDate() - 3

$num_rows = $db->doQuery('
    SELECT Class, TransferTime 
    FROM USERDATA 
    WHERE strUserId = ? 
      AND (TransferTime < (GetDate() - 3) OR TransferTime IS NULL)   
', $character);

它是否会检查strUserIDtransfertime是否少于3天,因为它在3天内确实无法正常工作?

2 个答案:

答案 0 :(得分:3)

GETDATE() - 3将当前日期时间减去3天。如果您需要在3天之前使用该过滤器,从00:00:00.000开始,则需要首先删除TIME的{​​{1}}部分。如果使用SQL Server 2008+,则可以将GETDATE()强制转换为GETDATE()

DATE

对于以前的版本,您可以使用:

WHERE TransferTime < DATEADD(DAY,-3,CONVERT(DATE,GETDATE()))

答案 1 :(得分:0)

尝试:

select GetDate() - 3

它将真正从当前日期+时间删除72小时