【问题标题】: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())) 有什么不同
【发布时间】:2018-09-11 09:48:20
【问题描述】:

两者有什么不同

DATEADD(DAY, 1, GETDATE())

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

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

【问题讨论】:

  • 如果你用两个值做选择,你会很快看到它
  • @PatrickHonorez 嗨,谢谢。

标签: sql-server tsql dateadd


【解决方案1】:

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

2018-01-02T05:43:26

第二个去掉时间分量,所以返回:

2018-01-02T00:00:00

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • @akkapolk 欢迎光临。
    猜你喜欢
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多