将numeric更改为date sql



我有一个表,其中日期存储为数值。示例:

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;

最新更新