SQL Server创建日期大于一个日期的标志

时间:2016-10-03 14:07:46

标签: sql sql-server date sql-server-2014

您好我试图在表格中创建一个包含比较日期的标志。我需要能够说明结束日期是否大于开始日期但是不到开始年份的11月30日,然后将其标记为Y,否则为N.

我在SQL Server 2014上。有人可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:0)

你可以使用一个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

* /