![](/img/trans.png)
[英]How to Calculate Days,Weeks,Month,Year difference from Today's Date in SQL?
[英]Need to calculate difference of days between joining date and today's date in year,month and days format
我有一個叫日期的表
Opendate Closedate
2016-02-26 NULL
2017-01-01 NULL
2015-11-11 NULL
我想要輸出為
Opendate Workingperiod
2016-02-26 1 years 0 months 1 days
2017-01-01 0 years 1 months 26 days
2015-11-27 1 years 3 months 0 days
我們需要計算opendate和今天的日期之間的差異,以及年月日格式。
any1可以共享任何輸入嗎?
我認為這應該有效-結合日期算術(我要添加CURRENT_DATE來顯示我們正在計算的內容); WITH子句只是您顯示的輸入。
WITH
input(Opendate,Closedate) AS (
SELECT DATE '2016-02-26',NULL
UNION ALL SELECT DATE '2017-01-01',NULL
UNION ALL SELECT DATE '2015-11-11',NULL
)
SELECT
GETDATE( ) AS current_date
, Opendate
, CAST(DATEDIFF(MONTH, Opendate,GETDATE( )) / 12 AS VARCHAR(3)) + ' years '
+ CAST(DATEDIFF(MONTH, Opendate,GETDATE( )) % 12 AS VARCHAR(3)) + ' months '
+ CAST(
DATEDIFF(
DAY
, Opendate
, DATEADD(
MONTH
, DATEDIFF(MONTH, Opendate,GETDATE( )) * -1
, GETDATE( )
)
)
AS VARCHAR(3)
) + ' days'
AS WorkingPeriod
FROM input;
current_date|Opendate |WorkingPeriod
2017-02-26 |2016-02-26|1 years 0 months 0 days
2017-02-26 |2017-01-01|0 years 1 months 25 days
2017-02-26 |2015-11-11|1 years 3 months 15 days
CREATE TABLE Dates(Opendate DATE, CloseDate DATE)
INSERT INTO Dates(Opendate, CloseDate) values('2016-02-26', null),('2017-01-01',null),('2015-11-11',null)
SELECT Opendate,
CASE WHEN DAY(Opendate)>DAY(GETDATE()) THEN
CAST(DATEDIFF(month,Opendate,GETDATE())/12 AS VARCHAR(5))+' year '+
CAST((DATEDIFF(month,Opendate,GETDATE())%12-1) AS VARCHAR(5)) +' month '+
CAST(DATEDIFF(day,DATEADD(month,DATEDIFF(month,Opendate,GETDATE())-1,Opendate),EOMONTH(DATEADD(month,-1,GETDATE())))+DAY(GETDATE()) AS VARCHAR(5))+' days '
ELSE
CAST(DATEDIFF(month,Opendate,GETDATE())/12 AS VARCHAR(5))+' year '+
CAST(DATEDIFF(month,Opendate,GETDATE())%12 AS VARCHAR(5)) +' month '+
CAST(DATEDIFF(day,DATEADD(month,DATEDIFF(month,Opendate,GETDATE()),Opendate),GETDATE()) AS VARCHAR(5))+' days '
END AS 'Workingperiod'
FROM Dates
上面是我的腳本,希望您覺得它有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.