2
SELECT
   [NAMENO],
   [FIRSTNAME],
   [MIDNAME],
   [LASTNAME],
   [SEX],
   [STATUSOF],
   [RELEASEDT],
   CONVERT(VARCHAR(10), DOBDT, 101) AS DOBDT 
FROM
   database
WHERE 
   ReleaseDT >= dateadd(minute,datediff(minute,60,GETDATE()),0)
   AND ReleaseDT < dateadd(minute,datediff(minute,0,GETDATE()),0)

如果有意义的话,我想让任何在过去 60 分钟内有“releasedt”的人?现在它在过去 60 天里拉动..

有什么建议么??

4

1 回答 1

3

只是:

where ReleaseDT >= dateadd(minute, -60, getdate())
and ReleaseDT <= getdate()

嵌套dateaddand datediff(就像您在问题中的代码中所做的那样)不是必需的。
事实上,datediff计算两个日期时间值之间的差异(以小时、分钟为单位……无论如何),所以当你只想得到“现在减去 60 分钟”时,你根本不需要它。

于 2013-11-14T16:06:50.027 回答