【问题标题】:Generate a date based on Month and year column根据月份和年份列生成日期
【发布时间】:2013-03-07 07:04:08
【问题描述】:

有没有办法根据用户月份和年份生成日期, 我需要一个结果表有 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  

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

    我猜你可以使用 DATEFROMPARTS 并传递月份和年份列

    【讨论】:

    • 感谢您的回复,我想知道在将数据从一个表复制到另一个表时如何合并它
    【解决方案2】:

    这是一种方法:

    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
    

    【讨论】:

      【解决方案3】:

      开始日期:

      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)
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        相关资源
        最近更新 更多