【问题标题】:How does dateadd, datetime and datediff works together?dateadd、datetime 和 datediff 如何协同工作?
【发布时间】:2019-08-14 21:05:43
【问题描述】:

谁能帮我理解这段代码的sn-p:

DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, 0, CONVERT(datetime, 
er.DATE_EFFECTIVE)) + 2, 0))

【问题讨论】:

  • 哪些部分你不明白?它从 DATE_EFFECTIVE 返回下个月的最后一天
  • 你想完成什么?
  • 它会帮助你理解如果你把它拆开...运行这个...select CONVERT(datetime, er.DATE_EFFECTIVE) --Your Date ,DATEDIFF(mm, 0, CONVERT(datetime,er.DATE_EFFECTIVE)) ,DATEADD(mm, DATEDIFF(mm, 0, CONVERT(datetime,er.DATE_EFFECTIVE)) + 2,0) ,DATEADD(dd, -1, DATEADD(mm, DATEDIFF(mm, 0, CONVERT(datetime,er.DATE_EFFECTIVE)) + 2, 0)) FROM yourTable er
  • datetime 是一种数据类型,DateDiff 是两个日期时间之间的距离,根据第一个参数是什么(mm 表示月份,day 表示一天等),DateAdd 将为您提供一个新的日期时间,即根据前两个参数进行调整。 DateAdd (dd, -1, targetColumn) 会比 targetColumn 设置的时间早一天。

标签: sql-server datetime datediff


【解决方案1】:

我将此答案发布给可能正在寻求帮助的其他用户。所以请参考 Cody McPhron 的评论:

  • datetime 是一种数据类型
  • DateDiff 是两个日期时间之间的距离,根据 无论第一个参数是什么(mm 表示月份,day 表示一天等)
  • DateAdd 会给你一个根据前两个调整的新日期时间 参数。
  • DateAdd (dd, -1, targetColumn) 会比设置 targetColumn 早一天 到

【讨论】:

    猜你喜欢
    • 2015-07-20
    • 2021-11-15
    • 1970-01-01
    • 2018-10-05
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 2019-04-21
    相关资源
    最近更新 更多