[英]SQL SERVER Convert Function Not Working Varchar to Date
我正在尝试使用 convert 函数将存储为 varchar(12) 的日期转换为日期,并且返回时值不会更改。
我已经尝试了 CAST 和 CONVERT(Varchar(10), COL_Name, 126),但没有一个将值修改为我希望返回的日期。 我认为问题可能是我们使用的第 3 方服务以 m(m)/d(d)/yyyy 和 yyyymmdd00 格式存储日期。
SELECT CONVERT(varchar(10), SENIORITY, 126) SENIORITY from #TEMP1
SELECT CAST(SENIORITY AS DATE) SENIORITY from #TEMP1
返回如下:
SENIORITY
8/14/2017
2017082200
2018031500
04/25/2011
04/25/2011
7/18/2011
06/20/2011
9/12/2011
7/17/2011
01/16/2012
我期待着:
SENIORITY
2017-08-14
2017-08-22
2018-03-15
2011-04-25
etc.
我很确定这是因为它有时会使用 yyyymmdd00 存储,但我不知道如何修改查询以正确解释和转换。 有什么想法吗?
我想你想要:
select (case when sen9ority like '%/%/%'
then convert(date, seniority, 101)
else convert(date, left(seniority, 8))
end)
或者,您可以使用try_convert()
和coalesce()
:
select coalesce(try_convert(date, seniority, 101),
try_convert(date, left(seniority, 8))
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.