什么是SQL Server语句来获取忽略当前年份的日期和月份?

时间:2016-05-06 02:20:32

标签: sql sql-server

我的表格HD_Case_Master包含cm_date_created列。

示例值为2011-05-13 10:07:36.000

我设法获得当前年份但是如何获得全天和月份的记录。

SQL语句:

SELECT 
    cm_create_date 
FROM 
    HD_Case_Master 
WHERE
    YEAR(cm_create_date) = YEAR(GETDATE()) AND ???

4 个答案:

答案 0 :(得分:0)

如果您想要当前日期:

SELECT cm_create_date
FROM HD_Case_Master 
WHERE cm_create_date >= CAST(GETDATE() as date) AND
      cm_create_date < CAST(DATEADD(day, 1, GETDATE()) as date) 

答案 1 :(得分:0)

如果您想检查cm_date_created是否等于当前日期,忽略时间组件,则只需要CAST两个日期DATE

SELECT *
FROM HD_Case_Master
WHERE
    CAST(cm_create_date AS DATE) = CAST(GETDATE() AS DATE)

或者,您可以使用>=<来检查cm_date_created是否属于当前日期:

SELECT *
FROM HD_Case_Master
WHERE
    cm_create_date >= CAST(GETDATE() AS DATE)
    AND cm_create_date < CAST(DATEADD(DAY, 1, GETDATE()) AS DATE)

答案 2 :(得分:0)

您可以使用tsql的DATEPART功能。

... Where DATEPART(day, cm_create_date) = DATEPART(day, getdate()) AND DATEPART(month, cm_create_date) = DATEPART(month, getdate())

答案 3 :(得分:0)

你真的很亲密!要仅添加月份(但忽略年份),只需使用:

SELECT 
    cm_create_date 
FROM 
    HD_Case_Master 
WHERE
    YEAR(cm_create_date) = YEAR(GETDATE()) 
    AND MONTH(cm_create_date) = MONTH(GETDATE())