Sql 到日期时间的Bigint
如何在SQL中将bigint格式转换为datetime格式?Sql 到日期时间的Bigint,sql,sql-server,datetime,type-conversion,Sql,Sql Server,Datetime,Type Conversion,如何在SQL中将bigint格式转换为datetime格式? 例如:20130805092330到2013-08-05 09:23:30.000这并不漂亮,但我会这样处理这个问题: SELECT CAST(SUBSTRING(CONVERT(NVARCHAR(16),20130805092330),1,8) + ' ' + SUBSTRING(CONVERT(NVARCHAR(16),20130805092330),9,2) + ':' + SUBSTRING(CONVERT(NVARCHA
例如:20130805092330到2013-08-05 09:23:30.000这并不漂亮,但我会这样处理这个问题:
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)
如果有人知道我想知道的更好的方法。这并不漂亮,但我会这样处理这个问题:
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
您的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
这看起来更像是一个具体的日期时间值,而不是一个bigint表示形式。您可以选择使用msdb.dbo.agent_datetime,例如选择msdb.dbo.agent_datetime(左([value],8),右([value],6)),这似乎是最简单的方法。这看起来更像是一个具体的日期时间值,而不是一个bigint表示。您可以选择使用msdb.dbo.agent_datetime,例如选择msdb.dbo.agent_datetime(左([value],8),右([value],6)),这似乎是最简单的方法。