我不明白为什么,但某种原因这个查询不起作用。 我想取系统日期的前一天,其中sysdate比当前日期早1天。
WHERE
a.SEND_Date >= dateadd(DD,-1,(CAST(getdate() as date) as datetime))
我不明白为什么,但某种原因这个查询不起作用。 我想取系统日期的前一天,其中sysdate比当前日期早1天。
WHERE
a.SEND_Date >= dateadd(DD,-1,(CAST(getdate() as date) as datetime))
CASE语句取决于你需要什么类型的日期。 如果你只需要比较日期,可以仅使用:
dateadd(DD, -1, cast(getdate() as date))
如果您需要比较日期和时间,可以使用以下方法:
dateadd(DD,-1,getdate())
这将给你一个日期时间,例如:2016-01-11 10:43:57.443
getDate()-1
该函数按标准减去(天)。
或者你可以不让这变得更加困难,尝试一下这个方法呢?
CAST(GETDATE()-1 as date )
在我的版本中,已选答案仍有时间(00:00:00)。 要仅获取日期,请使用: 选择Convert(date,dateadd(day,-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))
select CONVERT(varchar, DATEADD(DAY, -1, convert(Nvarchar, GETDATE(),112)),112)
CAST
吗? - wilx