Getdate(),-1天

问题描述 投票:8回答:4

我不明白为什么,但是以某种方式该查询不起作用。我想采用系统日期-1天,其中sysdate比当前日期小1天。

WHERE
    a.SEND_Date >= dateadd(DD,-1,(CAST(getdate() as date) as datetime)) 
sql sybase sqlanywhere
4个回答
16
投票

CAST取决于您需要哪种日期类型。如果只需要比较日期,则只能使用:

dateadd(DD, -1, cast(getdate() as date))

如果需要与日期时间进行比较,可以使用:

dateadd(DD,-1,getdate())

那样会给您这样的日期时间:2016-01-11 10:43:57.443


0
投票

在我的版本中,选中的答案仍然有时间(00:00:00)。要仅获取DATE,请使用:选择Convert(date,dateadd(day,-1,getdate()))

两者的重量相同,均为0.001秒


0
投票

仅缺少一个CAST:

dateadd(DD,-1,(CAST(getdate() as date) as datetime))

两次“作为”(作为日期+作为日期时间),但是只有一次“ CAST” =>出问题了-应该是:

dateadd(DD,-1,CAST(CAST(getdate() as date) as datetime))

0
投票

在T-SQL(sqlserver)中,您可以轻松完成:

getDate()-1

该函数减去(天)为标准。

© www.soinside.com 2019 - 2024. All rights reserved.