Sql server 从字符串转换日期和/或时间时,强制转换为日期,然后转换失败
我有一个Sql server 从字符串转换日期和/或时间时,强制转换为日期,然后转换失败,sql-server,Sql Server,我有一个varchar字段,它应该是按需求指定的日期,它是手动加载的,并且没有正确输入值 我使用下面的语句,但是 从字符串转换日期和/或时间时,转换失败 有人能帮我吗 谢谢。假设您有两种不同的格式 示例 Declare @YourTable Table ([YourCol] varchar(50)) Insert Into @YourTable Values ('2009-03-18') ,('18/03/09') Select * ,AsDate = case whe
varchar
字段,它应该是按需求指定的日期,它是手动加载的,并且没有正确输入值
我使用下面的语句,但是
从字符串转换日期和/或时间时,转换失败
有人能帮我吗
谢谢。假设您有两种不同的格式 示例
Declare @YourTable Table ([YourCol] varchar(50)) Insert Into @YourTable Values
('2009-03-18')
,('18/03/09')
Select *
,AsDate = case when YourCol like '__/__/__'
then try_convert(date,YourCol,3)
else try_convert(date,YourCol)
end
From @YourTable
结果
YourCol AsDate
2009-03-18 2009-03-18
18/03/09 2009-03-18
您需要为每种格式创建一个特定的
CONVERT
,希望只有两种格式…根据问题指南,请不要发布代码、数据、错误消息等的图像-将文本复制或键入问题。请保留图像用于图表或演示渲染错误,这是无法通过文本准确描述的。嗨,约翰,太棒了!!很有效,非常感谢@史蒂文森总是乐于帮忙。正如你现在所知道的,将日期存储为可变格式字符串是有风险的。@史蒂文森,如果你发现这个答案是有用的,你可能会考虑接受它。
YourCol AsDate
2009-03-18 2009-03-18
18/03/09 2009-03-18