我有一个表格,其中日期存储为数值。例如:
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.
答案 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;