首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在sql中将varchar转换为datetime

在sql中将varchar转换为datetime
EN

Stack Overflow用户
提问于 2019-03-25 13:21:01
回答 2查看 95关注 0票数 2

当前在我的数据库中,我有

代码语言:javascript
运行
复制
20181015 151706 ---------- varchar(15)
2018-10-15 15:17:06 000--- Datetime

如何将其从varchar转换为datetime?

我已经尝试使用下面的命令

代码语言:javascript
运行
复制
SELECT CONVERT(Datetime,CREATE_TIME , 120) from TABLE

但是我得到了错误

“将varchar数据类型转换为datetime数据类型导致值超出范围。”

代码语言:javascript
运行
复制
SELECT CONVERT(Datetime,CREATE_TIME , 120) from TABLE
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-25 13:30:04

由您的特殊20181015 151706 varchar DateTime值引起的错误,

你可以尝试使用substring函数,让DateTime格式的字符串值,然后做convert

代码语言:javascript
运行
复制
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

sqlfiddle

票数 1
EN

Stack Overflow用户

发布于 2019-03-25 13:55:52

您的日期字符串有一个小问题。当20181015 151706更改为仅日期部分20181015时,它会起作用。

代码语言:javascript
运行
复制
SELECT CONVERT(DATETIME, col)
FROM (
   select '20181015' col
) t1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55331636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档