DATEADD(DAY,1,GETDATE())和DATEADD(DAY,1,DATEDIFF(DAY,0,GETDATE())之间有什么不同)

问题描述 投票:0回答:2

有什么不同

DATEADD(DAY, 1, GETDATE())

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

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

sql-server tsql dateadd
2个回答
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
投票

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

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

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