0

有没有办法根据用户月份和年份生成日期,我需要一个结果表有 2 列作为开始日期和结束日期,因为应该从月份,到月份和年份。请参阅示例中显示的表结构和生成的表格式。

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  
4

3 回答 3

0

我想您可以使用 DATEFROMPARTS 并传递月份和年份列

于 2013-03-07T07:18:06.430 回答
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)

我希望这可以帮助你。

于 2013-09-12T08:50:38.793 回答
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
于 2013-03-07T07:32:32.937 回答