DATEADD(DAY, 1, GETDATE()) 和 DATEADD(DAY, 1, DATEDIFF(DAY, 0, GETDATE())) 有什么区别

What is different between DATEADD(DAY, 1, GETDATE()) and DATEADD(DAY, 1, DATEDIFF(DAY, 0, GETDATE()))

两者有什么不同

DATEADD(DAY, 1, GETDATE())

DATEADD(DAY, 1, DATEDIFF(DAY, 0, GETDATE()))

谁能帮忙展示示例,如何使用它们?

第一个版本包含 GETDATE() 的时间部分。第二个没有。所以,如果当前时间是2018-01-01T05:43:26,那么第一个版本returns:

2018-01-02T05:43:26

第二个去掉了时间成分,所以returns:

2018-01-02T00:00:00

我认为在第二天开始时获得午夜的更好版本是:

dateadd(day, 1, cast(getdate() as date))

在您的第一个版本中DateAdd()在当前日期中添加日期。

在你的第二个版本中,首先执行 DATEDIFF(DAY, 0, GETDATE()) 它给你不同的日期,然后它会在 DATEDIFF(DAY, 0, GETDATE()) 结果中添加一天。