如何在SQL Server中根据月份选择记录

时间:2016-03-05 09:22:17

标签: sql sql-server

我希望获得记录,如果在生效日期之后。如果我给1,它应该在2016-01-04和2016-03-04之间获得记录生效日期。

示例数据查询:

select employeecode, basic, effectivedt 
from PaymentEarningDetails

示例数据输出:

Employeecode    Basic   Effectivedt
------------------------------------
KT007           4545    2016-01-04
KT007           555     2016-03-04

期望的输出 - 如果输入月份是1和2016年。

KT007           4545    2016-01-04

查询:

SELECT TOP 1 
    MONTH(effectivedt), EffectiveDt
FROM 
    PaymentEarningDetails
WHERE 
    Employeecode = 'KT007'
    AND MONTH(effectivedt) <= '2'
    AND YEAR(effectivedt) >= '2016'
ORDER BY 
    EffectiveDt DESC

1 个答案:

答案 0 :(得分:0)

我明白你需要在2016年的01个月内完成所有事情,请试试这个。

SELECT 
    MONTH(effectivedt), EffectiveDt
FROM 
    PaymentEarningDetails
WHERE 
    Employeecode = 'KT007'
    AND MONTH(effectivedt) = 1
    AND YEAR(effectivedt) = 2016
ORDER BY 
    EffectiveDt DESC