我是SQL Server
的新手,我正试图找出它。在案件中我需要你的帮助。
我的数据库中有一个名为MainTable
的表。在表格中,我3 Columns
名为Id, StartDate, EndDate
。
我想要的是:我想发送一个月的查询,它将查看该月是否在开始日期和结束日期之间。如果是,它应该返回该行的ID。
例如:
第1行:Id:12,Startdate:2015-01-01,EndDate:2015-06-01
第2行:Id:14,Startdate:2015-05-01,EndDate:2015-08-01
如果我查询' March'。它应该返回12
我可以在两个日期之间写几个月,但我不能在其中查询。
你能帮助我吗?
答案 0 :(得分:0)
您可以输入March
并期望它返回column id = 12
但你可以输入3,它将返回正确的行
declare @MonthNum as tinyint
select id from MainTable where @MonthNum between
datepart(Month,Startdate) and datepart(Month,EndDate)
答案 1 :(得分:0)
你可以试试这个
DECLARE @MonthName VARCHAR(10)
SET @MonthName='March' -- Here you need to pass month name
DECLARE @MonthNumber INT
SELECT @MonthNumber= CASE @MonthName
WHEN 'January' THEN 1
WHEN 'February' THEN 2
WHEN 'March' THEN 3
WHEN 'April' THEN 4
WHEN 'May' THEN 5
WHEN 'June' THEN 6
WHEN 'July' THEN 7
WHEN 'August' THEN 8
WHEN 'September' THEN 9
WHEN 'October' THEN 10
WHEN 'Nonvember' THEN 11
WHEN 'December' THEN 12
END
SELECT Id FROM MainTable
WHERE @MonthNumber BETWEEN DATEPART(MONTH,StartDate) AND DATEPART(MONTH,EndDate)
你需要传递MonthName查询应该工作。 谢谢