【发布时间】:2015-03-09 18:53:37
【问题描述】:
我有两张桌子
- 在
temp表中我有[infoDate] [nvarchar](255) NULL - 在
info表中我有[infoDate] [datetime] NULL
temp 表中有 '17-JUL-14' 之类的值
我想从temp 表中插入info 表。
insert into info (infoDate)
select (infoDate)
from temp
我尝试了以下查询,但无法将字符串转换为日期时间
select convert(varchar, '17-JUL-14', 105)
SELECT REPLACE(CONVERT(VARCHAR,'17-JUL-14',6),'-',' ')
SELECT SUBSTRING('17-JUL-14',1,2)+' '+SUBSTRING('17-JUL-14',4,3)+' '+SUBSTRING('17-JUL-14',8,2)
这个查询有效
SELECT CONVERT(datetime,SUBSTRING('17-JUL-14',1,2)+' '+SUBSTRING('17-JUL-14',4,3)+' '+SUBSTRING('17-JUL-14',8,2),106)
但是现在,如何插入info 表?
insert into info (infoDate)
select
(CONVERT(datetime, SUBSTRING(infoDate, 1, 2) + ' ' +
SUBSTRING(infoDate, 4, 3) + ' ' +
SUBSTRING(infoDate, 8, 2), 106))
from temp
【问题讨论】:
-
您当前的插入查询有什么问题
-
只需执行
SELECT CONVERT(DATETIME, '17-JUL-14')这应该将其转换为日期时间 -
尝试时会发生什么?你有错误吗?
-
我收到此错误“从字符串转换日期和/或时间时转换失败。”
标签: sql-server datetime