【发布时间】: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