首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server中的CASTing和转换函数

Server中的CASTing和转换函数
EN

Stack Overflow用户
提问于 2018-04-16 03:05:07
回答 2查看 78关注 0票数 1

我正在尝试将dd.mm.yyyy转换为yyyy-mm-dd

代码语言:javascript
复制
select convert(date,CAST(WEEK_DATE as nvarchar(220)), 120) 
from z_fact

错误

Msg 241,第16级,状态1,第1行 从字符串转换日期和/或时间时,转换失败。

我怎么解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2018-04-16 03:23:28

由于您的日期实际上是文本,您必须首先使用CONVERT将其转换为真正的日期。然后,第二次使用CONVERT生成所需的文本输出。

代码语言:javascript
复制
SELECT CONVERT(varchar(20), CONVERT(datetime, '15.03.18', 4), 120);

Demo

请注意,将日期存储为文本通常是不好的做法。希望你能用我的答案来收拾你的桌子。例如,您可以添加一个新的datetime列new_dt,然后使用以下方法更新它:

代码语言:javascript
复制
UPDATE yourTable
SET new_dt = CONVERT(datetime, old_dt, 4);

不要担心Server使用的内部格式。如果仍然需要显示yyyy-mm-dd输出,那么再次使用CONVERT,就像我在第一个查询中所做的那样。

票数 3
EN

Stack Overflow用户

发布于 2018-04-16 03:24:31

你可以试试这个:

代码语言:javascript
复制
declare @dt NVARCHAR(12) = '15.03.18' 
SELECT  CONVERT(DATE,@dt,3)
GO
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49849087

复制
相关文章

相似问题

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