Bigint到日期时间

时间:2015-12-03 01:13:42

标签: sql sql-server datetime type-conversion

如何在SQL中将bigint转换为datetime格式? 例如:20130805092330至2013-08-05 09:23:30.000

2 个答案:

答案 0 :(得分:0)

这不是很好,但这就是我如何处理这个问题:

SELECT CAST(SUBSTRING(CONVERT(NVARCHAR(16),20130805092330),1,8) + ' ' + 
SUBSTRING(CONVERT(NVARCHAR(16),20130805092330),9,2) + ':' + 
SUBSTRING(CONVERT(NVARCHAR(16),20130805092330),11,2) + ':' + 
SUBSTRING(CONVERT(NVARCHAR(16),20130805092330),13,2) AS DATETIME)

如果有人知道我想知道更好的方式。

答案 1 :(得分:0)

你的bigint数据不是时间戳格式,你可以拆分bigint:8 - 6(日期 - 时间) 试试这个:

DECLARE
    @bigint BIGINT = 20130805092330
    ,@datetime DATETIME
    ,@time TIME
SET @datetime = CONVERT(DATETIME, LEFT(@bigint,8))

SET @time = CONVERT(TIME, LEFT(RIGHT(@bigint, 6), 2) + ':'
                            + LEFT(RIGHT(@bigint, 4), 2) + ':'
                            + RIGHT(@bigint, 2))
SET @datetime = @datetime + @time
SELECT @datetime

结果:

2013-08-05 09:23:30.000