繁体   English   中英

SQL SERVER 转换函数不工作 Varchar 到日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM