我正在尝试将dd.mm.yyyy转换为yyyy-mm-dd。
select convert(date,CAST(WEEK_DATE as nvarchar(220)), 120)
from z_fact错误
Msg 241,第16级,状态1,第1行 从字符串转换日期和/或时间时,转换失败。
我怎么解决这个问题?
发布于 2018-04-16 03:23:28
由于您的日期实际上是文本,您必须首先使用CONVERT将其转换为真正的日期。然后,第二次使用CONVERT生成所需的文本输出。
SELECT CONVERT(varchar(20), CONVERT(datetime, '15.03.18', 4), 120);
Demo
请注意,将日期存储为文本通常是不好的做法。希望你能用我的答案来收拾你的桌子。例如,您可以添加一个新的datetime列new_dt,然后使用以下方法更新它:
UPDATE yourTable
SET new_dt = CONVERT(datetime, old_dt, 4);不要担心Server使用的内部格式。如果仍然需要显示yyyy-mm-dd输出,那么再次使用CONVERT,就像我在第一个查询中所做的那样。
发布于 2018-04-16 03:24:31
你可以试试这个:
declare @dt NVARCHAR(12) = '15.03.18'
SELECT CONVERT(DATE,@dt,3)
GOhttps://stackoverflow.com/questions/49849087
复制相似问题