根据月和年列生成日期

时间:2013-03-07 07:04:08

标签: sql-server-2008

有没有办法根据用户月份和年份生成日期, 我需要一个结果表,有2列一个startdate和enddate应该有月,tomonth和年。 请参阅示例中显示的表结构和结果表格式。

example:
co1         col2        col3
fromMonth   toMonth     year
5           12          2012
1           4           2013


result:
co1         col2    
StartDate   EndDate 
01/05/2012  31/12/2012  
01/01/2013  30/04/2013  

3 个答案:

答案 0 :(得分:0)

我猜你可以使用DATEFROMPARTS并传递月份&年专栏

答案 1 :(得分:0)

这是一种方法:

DECLARE @tbl TABLE (fromMonth  INT, toMonth   INT,  year INT)
INSERT @tbl VALUES
(5           ,12          ,2012),
(1           ,4          ,2013)

SELECT  DATEADD(MONTH, (YEAR - 1900) * 12 + fromMonth - 1, '1900-01-01') StartDate
        , DATEADD(DAY, -1, DATEADD(MONTH, (YEAR - 1900) * 12 + toMonth, '1900-01-01')) EndDate
FROM    @tbl

答案 2 :(得分:0)

开始日期:

CAST(CAST(1 AS varchar) + '/' + CAST(col1 AS varchar) + '/' + CAST(col3 AS varchar) AS DATETIME)

结束日期:

CAST(CAST(31 AS varchar) + '/' + CAST(col2 AS varchar) + '/' + CAST(col3 AS varchar) AS DATETIME)

我希望这会对你有所帮助。