我不明白为什么,但不知怎的,这个查询不起作用。 我想系统日期为-1天,其中sysdate比当前日期小1天。
WHERE
a.SEND_Date >= dateadd(DD,-1,(CAST(getdate() as date) as datetime))
答案 0 :(得分:12)
CAST取决于您需要的日期类型。 如果您只需要比较日期,则只能使用:
dateadd(DD, -1, cast(getdate() as date))
如果您需要与日期时间进行比较,可以使用:
dateadd(DD,-1,getdate())
这会给你这样的日期时间:2016-01-11 10:43:57.443
答案 1 :(得分:2)
在T-SQL(sqlserver)中,您可以执行以下操作:
getDate()-1
该功能减去(天)作为标准。
答案 2 :(得分:1)
或者您可以尝试此操作而不会变得更加困难?
CAST(GETDATE()-1 as date )
答案 3 :(得分:0)
检查的答案仍有时间(00:00:00),无论如何都在我的版本中。 要获得DATE,只能使用: 选择转换(date,dateadd(day,-1,getdate()))
两者都具有相同的重量,0.001秒
答案 4 :(得分:0)
仅缺少一个CAST:
dateadd(DD,-1,(CAST(getdate() as date) as datetime))
两次“ as”(作为日期+作为datetime),但是只有一次“ CAST” =>出现问题-应该是:
dateadd(DD,-1,CAST(CAST(getdate() as date) as datetime))
答案 5 :(得分:0)
请不要关注任何内容,因为该日期将于01/05/2020发行,并将打印为00/05/2020。因此,请在下面使用此修补程序
select CONVERT(varchar, DATEADD(DAY, -1, convert(Nvarchar, GETDATE(),112)),112)