日期计算减去日期

时间:2016-08-29 17:19:04

标签: sql sql-server

我有一个sales_start_date字段(值类似2014-06-17,2015-07-23 ......) 我需要根据sales_start日期进行计算..

我必须采用最近的月末日期(我必须将此值强制为2016-07-31)并减去sale_start_date以获取经过的天数的整数计数。如果过去的天数小于2,则默认值为2

sales_start_date

2016-01-01
2016-07-30

输出

Calculated field
155
2

任何人都可以帮我写一些案例陈述。 非常感谢您的帮助。

谢谢你, Swathi。

2 个答案:

答案 0 :(得分:0)

您基本上需要使用DATEDIFF

SELECT  DATEDIFF(day,<enter start date column here>,<most recent month-end date column here>) AS [Calculated field]
FROM <your table here>

答案 1 :(得分:0)

SQL-server 2012 +你有EOMONTH()来帮助你更轻松地到月底。

;WITH cteData AS (
    SELECT CAST('2016-01-01' AS DATE) as Start_date
    UNION ALL
    SELECT '2016-07-30'
)

SELECT
    EOMONTH(DATEADD(MONTH,-1,GETDATE())) as EndOfPreviousMonth
    ,DATEDIFF(DAY,Start_date,EOMONTH(DATEADD(MONTH,-1,GETDATE()))) + 1 as DaysDifferent
FROM
    cteData