SQL int to string to datetime

时间:2014-08-23 10:45:35

标签: sql sql-server tsql datetime

我有整数的日期。

将整数转换为datetime的最简洁方法是什么?

我用这种凌乱的方式:

CONVERT(DATETIME,  cast(source.Day as varchar(2)) + '/' + cast(source.Month as varchar(2)) + '/' + cast(source.Year as varchar(2)), 3),

4 个答案:

答案 0 :(得分:2)

您可以使用DATEFROMPARTS功能:

SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS Result;

请注意,它仅适用于2012年以上的版本。

答案 1 :(得分:2)

以下是如何做到这一点

   Declare @date date, 
        @year INT = 2014,
        @Month INT = 10,
        @DateDay INT = 12,
        @parseDate char(20)

select @date = CONVERT(date, 
                CAST( Cast(@Year as char(4))
                         + Cast(@Month as char(2)) +
                          cast(@DateDay as char(2))  AS CHAR(12)), 112)
select @date

注意:我没有处理 NULL 个案。

答案 2 :(得分:1)

试试这个:

select CONVERT (datetime,convert(char(8),yourvalue))

答案 3 :(得分:1)

使用R.T.s解决方案,这可能有效

CREATE TABLE DATA(yr int, mth int, dy int);
INSERT INTO DATA
VALUES (2014,10,15);

SELECT
      CONVERT (DATETIME,
                CONVERT(char(4), yr) + 
                CONVERT(char(2), mth) + 
                CONVERT(char(2), dy)
       ) as Result
FROM DATA

这仍然有点凌乱,并假设一个4位数的年整数。

SQL小提琴:http://sqlfiddle.com/#!6/cbf62/2