首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql server中的字符串到日期时间转换

sql server中的字符串到日期时间转换
EN

Stack Overflow用户
提问于 2021-06-17 07:58:29
回答 1查看 92关注 0票数 0

是否可以在sql server中将“10-20”转换为“2020/10/01”。我试过以下几个案子都没有结果。

代码语言:javascript
复制
select convert(date, 'OCT-20',103)

--从字符串转换日期和/或时间时,转换失败。

代码语言:javascript
复制
alter table MyTable alter column [period] date

--从字符串转换日期和/或时间时,转换失败。

我正在使用sql server 2016。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-17 08:05:17

如果我们假设值始终是MMM-yy格式的,那么您可以这样做:

代码语言:javascript
复制
SELECT CONVERT(date,'01-' + StringDate,106)
FROM dbo.YourTable;

当然,这有两个缺陷。

  1. 日期使用2位数的年份,因此Server可能假定错误的世纪
  2. 只有在LOGIN使用基于英语的语言时才能工作,否则就会失败。

真正的解决方案是修复您的设计;不要将日期(和时间)值存储在varchar中,当您确实对日期使用varchar (例如WHERE中的文字)时,使用yyyyMMddyyyy-MM-ddThh:mm:ss.nnnnnnn等明确的格式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68015210

复制
相关文章

相似问题

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