簡體   English   中英

SQL SERVER轉換日期格式

[英]SQL SERVER Convert Date Format

現在,在列中以三種不同的格式存儲字符串。 這樣的例子

  • 15 2/04/15 9.30-12
  • 2015年10月1日上午10點至下午1點
  • 15/03/15 1st appt

如何將所有要合並的日期轉換為像ddmmyyy這樣的標准日期? 不適合使用Left 10。

以下是我針對SQL2012的解決方案:

DECLARE @Date AS TABLE(val VARCHAR(30));

INSERT INTO @Date VALUES('2/04/15 9.30-12');
INSERT INTO @Date VALUES('10/01/2015 10am - 1pm');
INSERT INTO @Date VALUES('17/03/15 1st appt');

SELECT TRY_PARSE(LEFT(val, CHARINDEX(' ', val)) AS DATE USING 'en-gb') AS Date FROM @Date;

輸出為:

在此處輸入圖片說明

還將嘗試找出2008年的內容。 可能的。

使用try_convert() 然后再次try_convert() 也許像這樣:

select coalesce(try_convert(date, left(col, charindex(' ', col + ' ') - 1), 1),
                try_convert(date, left(col, charindex(' ', col + ' ') - 1), 101),
                try_convert(date, left(col, charindex(' ', col + ' ') - 1), 103),
                . . .
               ) as dte
from t;

只是繼續嘗試不同的樣式。 請注意,這些命令已訂購。 因此,您必須確定02/01/2012 2月1日是2月1日還是1月2日。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM