我正在比较SQL Server中的两个日期,并且需要以下精确信息:
输入:
Start Date = 12/28/2015
End Date = 12/25/2020
返回结果(每个部分在不同的列中):
答案 0 :(得分:0)
对于1-3,您可以选中https://www.w3schools.com/sql/func_sqlserver_datediff.asp。这非常简单,您只需使用datediff
并指定关注单位即可。
对于4,您只需执行day(开始日期)即可获取日期。
对于5和7,您可以使用:
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@myDate)+1,0)
获取给定日期的月末日期,并使用day()
获取datetime对象的日期部分。
对于6和8,这只是简单的数学运算,您可以从5和7得到该月的月份数,然后,如果开始日期为(day(eom(Start Date)) - day(Start Date) + 1) / day(eom(date)
,如果结束日期为day(End Date) / day(eom(End Date))
我没有给您完整的代码,因为除了我之外我没有运行SQL Server。希望对您有所帮助。