我有一个表,其中日期存储为数值。示例:
localdate
20150109112542
20150109113643
20150109130244
20150109163900
20150109164127
要转换,我使用这段代码:
SELECT
convert(datetime,convert(varchar(8),LocalDate,113)) from book1
但我得到了这样的结果:
Column1
09/01/2015 00:00:00
09/01/2015 00:00:00
09/01/2015 00:00:00
09/01/2015 00:00:00
09/01/2015 00:00:00
似乎只捕捉日期,而没有捕捉时间。有什么想法吗?
编辑:
我确实试图更改为更大的varchar(如14),但我得到了这个错误:Error 241: Conversion failed when converting date and/or time from character string.
使用样式112的STUFF()
和CONVERT()
函数试试这个:Fiddle演示
SELECT CONVERT(DATETIME,
STUFF(STUFF(
STUFF(CONVERT(VARCHAR(20), localDate), 9, 0, ' '), 12, 0,':'), 15, 0,':'), 112)
FROM book1
尝试使用足够大的varchar()
来容纳所有字符:
SELECT convert(datetime, convert(varchar(14), LocalDate,113))
from book1;