簡體   English   中英

SQL Server 創建日期大於一個日期的標志

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM