在 sql 中将 varchar 转换为 datetime
converting varchar to datetime in sql
目前在我的数据库中我有
20181015 151706 ---------- varchar(15)
2018-10-15 15:17:06 000--- Datetime
如何将它从 varchar 转换为 datetime?
我试过使用下面这个命令
SELECT CONVERT(Datetime,CREATE_TIME , 120) from TABLE
但我收到错误
"The conversion of a varchar data type to a datetime data type resulted in an out-of-range value."
SELECT CONVERT(Datetime,CREATE_TIME , 120) from TABLE
你的特殊20181015 151706
varchar
DateTime值造成的错误,
您可以尝试使用 substring
函数生成 DateTime 格式字符串值,然后执行 convert
.
SELECT CONVERT(DATETIME,CONCAT(substring(col, 1, 4),'-',substring(col, 5, 2),'-',substring(col, 7, 2),' ',substring(col, 9, 2),':',substring(col, 11, 2),':',substring(col, 13, 2)))
FROM (
select REPLACE('20181015 151706',' ','') col
) t1
您的日期字符串有点问题。当 20181015 151706
更改为仅日期部分 20181015
.
时有效
SELECT CONVERT(DATETIME, col)
FROM (
select '20181015' col
) t1
目前在我的数据库中我有
20181015 151706 ---------- varchar(15)
2018-10-15 15:17:06 000--- Datetime
如何将它从 varchar 转换为 datetime?
我试过使用下面这个命令
SELECT CONVERT(Datetime,CREATE_TIME , 120) from TABLE
但我收到错误
"The conversion of a varchar data type to a datetime data type resulted in an out-of-range value."
SELECT CONVERT(Datetime,CREATE_TIME , 120) from TABLE
你的特殊20181015 151706
varchar
DateTime值造成的错误,
您可以尝试使用 substring
函数生成 DateTime 格式字符串值,然后执行 convert
.
SELECT CONVERT(DATETIME,CONCAT(substring(col, 1, 4),'-',substring(col, 5, 2),'-',substring(col, 7, 2),' ',substring(col, 9, 2),':',substring(col, 11, 2),':',substring(col, 13, 2)))
FROM (
select REPLACE('20181015 151706',' ','') col
) t1
您的日期字符串有点问题。当 20181015 151706
更改为仅日期部分 20181015
.
SELECT CONVERT(DATETIME, col)
FROM (
select '20181015' col
) t1