1
如何在SQL中将bigint转换为日期时间格式? 如:20130805092330到2013年8月5日09:23:30.000Bigint到Datetime
如何在SQL中将bigint转换为日期时间格式? 如:20130805092330到2013年8月5日09:23:30.000Bigint到Datetime
这是不漂亮,但这个是我将如何处理这个问题:如果有人有更好的办法,我”知道
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)
我想知道。
你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
这看起来更像是一个concated日期时间值比bigint表示。 – Harsh
您可以选择使用msdb.dbo.agent_datetime,例如SELECT msdb.dbo.agent_datetime(LEFT([value],8),RIGHT([value],6)),这似乎是最简单的方法。 – ZLK