在SQL Server中,我想將文本從yyyymmdd或yyyyddmm格式轉換成dd MMM yyyy。
舉例說明。從20211231到2021年12月31日和從20213112到2021年12月31日
。NB:在一列中,我的資料是yyyymmdd格式。我還想知道:如果我以yyyyddmm格式而不是yyyymmdd存盤資料,那么我如何能夠將其轉換為dd MMM yyyy格式?
uj5u.com熱心網友回復:
解決方案是修復你的設計;沒有爭論,這是事實。看起來你在這里有兩列,而不是一列,所以希望在同一列中的格式是一致的。
--將yyyddMM日期設定為ISO格式。
UPDATE dbo.YourTable
SET yyyyddMM = LEFT(yyyyddMM, 4) RIGHT(yyyddMM, 2) SUBSTRING(yyyddMM, 5, 2) 。
--擺脫垃圾日期。
UPDATE dbo.YourTable
SET yyyyddMM = NULL
WHERE TRY_CONVERT(date, yyyyddMM) IS NULL。
UPDATE dbo.YourTable
SET yyyyMMdd = NULL
WHERE TRY_CONVERT(date, yyyyMMdd) IS NULL。
解釋
--修復資料型別。
ALTER TABLE dbo.YourTable ALTER COLUMN yyyyMMdd date;
ALTER TABLE dbo.YourTable ALTER COLUMN yyyyddMM date;
然后你在你的表現層中控制格式,不管那是什么,不是SQL。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/323136.html
標籤:
