2016-06-14 52 views
0

我有数据20160526094432,我想转换成日期时间在SQLServer的 其结果将是2016年5月26日9时44分32秒如何转换为nvarchar(包括时间)到日期时间

有没有简单的方法要做到这一点 ?

谢谢

+0

通过方便知道您正在使用 –

+0

可能复制数据库的名称[转换为varchar到日期时间在SQL Server](http://stackoverflow.com/questions/1509977/convert-varchar-into- datetime-in-sql-server) – Spiderman

回答

1

如果您使用MS SQL Server 2012或更新的版本,那么您可以享受format函数。

select cast(format(20160526094432,'####-##-## ##:##:##') as datetime) [date-time] 

如果你的长号码是一个字符串,那么你必须将其转换。

declare @d varchar(20)='20160526094432' 
select cast(format(cast(@d as bigint),'####-##-## ##:##:##') as datetime) [date-time] 
+0

我正在使用SQLServer 2014,我想更新我的表格。 更新copy_vw_work_in_progress_so_list 将picking_datetime = CAST(FORMAT([picking_date],'#### - ## - ## ##:##:##')设置为datetime)。 和错误消息8116,级别16,状态1,行9 参数数据类型nvarchar对格式化函数的参数1无效。 – Henry

+0

查看我的更新。 '... CAST(FORMAT(cast([picking_date] as bigint),'#### ### ### ##:##')as datetime)...' –

0

嗯。我不认为这是一个真正干净方式,但这样的事情应该工作:

select (convert(datetime, left(col, 8) as datetime) + 
     convert(datetime, convert(time, 
            stuff(stuff(right(col, 6), 5, 0, ':'), 3, 0, ':') 
           ) 
       ) 
     ) 
0

也许你可以用这种方式尝试,例如日期是你的表的列,103是格式你想转换的日期,谷歌的更多细节。

CONVERT(datetime, Date, 103) 
+0

我已经试过但是得到错误 从字符串转换日期和/或时间时转换失败。 – Henry

相关问题