SQL Server:仅按月和日匹配日期

Mik*_*ike 5 sql sql-server stored-procedures date

我有一个存储过程,根据与日期输入匹配的日期获取记录,到目前为止工作正常.表格中的日期和输入日期都被格式化为日期时间.

我没有比较完整的日期,而是想改变它,以便它只比较月和日,以便它适用于任何一年的输入.

示例: 表中的日期保存为2013-04-30,输入日期为2014-04-30.我想要的是,只要月份和日期匹配,存储过程仍然会独立于年份返回该记录.

我的存储过程:

ALTER PROCEDURE [dbo].[FetchDays]
    @inputDate datetime
AS
BEGIN
    SET NOCOUNT ON;
    SELECT      dateID,
                dayDT,
                countries,
                regions
    FROM        DaysDT
    WHERE       dayDT = @inputDate
    FOR XML PATH('daysFixed'), ELEMENTS, TYPE, ROOT('root')

END
Run Code Online (Sandbox Code Playgroud)

非常感谢Mike的任何帮助.

Ryx*_*yx5 8

你可以这样做;)

ALTER PROCEDURE [dbo].[FetchDays]
    @inputDate datetime
AS
BEGIN
    SET NOCOUNT ON;
    SELECT      dateID,
                dayDT,
                countries,
                regions
    FROM        DaysDT
    WHERE       
        DAY(dayDT) = DAY(@inputDate) --Extract and compare day
        AND MONTH(dayDT) = MONTH(@inputDate) --Extract and compare month
    FOR XML PATH('daysFixed'), ELEMENTS, TYPE, ROOT('root')

END
Run Code Online (Sandbox Code Playgroud)