[英]SQL Server creating a flag with dates greater than one date
嗨,我正在嘗試在涉及比較日期的表中創建一個標志。 我需要能夠說結束日期是否大於開始日期但小於開始年份的 11 月 30 日,然后將其標記為 Y,否則為 N。
我在 SQL Server 2014 上。有人可以幫我嗎?
謝謝
您可以為此使用類似於我在下面顯示的 case 語句,我還包括查詢的結果。
CREATE TABLE #Graduates
(
ID INT IDENTITY(1,1),
FullName VARCHAR(1000),
StartDate DATE,
EndDate DATE,
CommencementDate DATE NULL
)
INSERT INTO #Graduates
(
FullName,
StartDate,
EndDate,
CommencementDate
)
SELECT
'Curly',
'8/26/2000',
'06/12/2004',
'06/5/2004'
UNION
SELECT
'Doug',
'8/23/2002',
'06/2/2006',
'06/12/2006'
UNION
SELECT
'Larry',
'8/23/2012',
'12/2/2016',
'6/4/2016'
UNION
SELECT
'Moe',
'8/23/2012',
'12/2/2016',
NULL
SELECT
*,
CASE WHEN EndDate > CommencementDate AND EndDate <= '11/30/' + CONVERT(VARCHAR(4),Year(CommencementDate)) THEN 'Y'
ELSE 'N' END AS Flag
FROM #Graduates
DROP TABLE #Graduates
/* 結果
ID FullName StartDate EndDate CommencementDate Flag
1 Curly 2000-08-26 2004-06-12 2004-06-05 Y
2 Doug 2002-08-23 2006-06-02 2006-06-12 N
3 Larry 2012-08-23 2016-12-02 2016-06-04 N
4 Moe 2012-08-23 2016-12-02 NULL N
*/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.