簡體   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