Getdate(),-1天

时间:2016-01-12 08:33:06

标签: sql sybase sqlanywhere

我不明白为什么,但不知怎的,这个查询不起作用。 我想系统日期为-1天,其中sysdate比当前日期小1天。

WHERE
    a.SEND_Date >= dateadd(DD,-1,(CAST(getdate() as date) as datetime)) 

6 个答案:

答案 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)