我不明白为什么,但不知怎么的,这个查询不起作用。我想取系统日期-1天,其中系统日期比当前日期小1天。
WHERE
a.SEND_Date >= dateadd(DD,-1,(CAST(getdate() as date) as datetime))
CAST取决于您需要的日期类型。如果你只需要比较日期,你只能使用:
dateadd(DD, -1, cast(getdate() as date))
如果你需要与日期时间进行比较,你可以使用:
dateadd(DD,-1,getdate())
这会给你这样的日期时间:2016-01-11 10:43:57.443
在T-SQL(sqlserver)中,您可以简单地执行:
getDate()-1
函数以子字符串(天)作为标准。
或者您可以在不增加难度的情况下尝试一下?
CAST(GETDATE()-1 as date )
在我的版本中,选中的答案仍然有时间(00:00:00)。要只获取DATE,请使用:选择转换(日期,日期添加(天,-1,getdate()))
两者重量相同,0.001秒
只缺少一个CAST:
dateadd(DD,-1,(CAST(getdate() as date) as datetime))
两次"as"(作为日期+作为日期时间),但只有一次"CAST"=>有问题-应该是:
dateadd(DD,-1,CAST(CAST(getdate() as date) as datetime))
请不要关注任何日期,因为此日期将于2020年5月1日发布,将打印为2020年5日00时。所以请使用下面的这个来修复
select CONVERT(varchar, DATEADD(DAY, -1, convert(Nvarchar, GETDATE(),112)),112)