将数字更改为日期sql

时间:2015-03-23 11:06:22

标签: sql sql-server date

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

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.

2 个答案:

答案 0 :(得分:3)

使用样式 112的STUFF()CONVERT()函数尝试此操作: Fiddle demo

SELECT CONVERT(DATETIME, 
    STUFF(STUFF(
      STUFF(CONVERT(VARCHAR(20), localDate), 9, 0, ' '), 12, 0,':'), 15, 0,':'), 112)
FROM book1

答案 1 :(得分:2)

尝试使用足够大的varchar()来填充所有字符:

SELECT convert(datetime, convert(varchar(14), LocalDate,113))
from book1;