如何在SQL中将bigint转换为datetime格式? 例如:20130805092330至2013-08-05 09:23:30.000
答案 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