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

时间:2018-09-11 09:48:20

标签: sql-server tsql dateadd

两者之间有什么区别

DATEADD(DAY, 1, GETDATE())

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

有人可以帮助展示示例案例,如何使用它们吗?

2 个答案:

答案 0 :(得分:4)

第一个版本包含GETDATE()的时间部分。第二个没有。因此,如果当前时间是2018-01-01T05:43:26,则第一个版本将返回:

2018-01-02T05:43:26

第二个元素删除了时间成分,因此它返回:

2018-01-02T00:00:00

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

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

答案 1 :(得分:1)

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

在第二个版本中,首先执行DATEDIFF(DAY, 0, GETDATE()),它会为您提供不同的日期,之后它将在DATEDIFF(DAY, 0, GETDATE())结果中增加一天。