Sql-Server

將字元串格式的日期轉換為日期數據類型 sql

  • January 7, 2021

我在名為 Date 的列中有值作為 mmddyy 形式的 nvarachar 數據類型,並希望將值轉換為 yyyy-mm-dd 形式的日期數據類型。我可以使用什麼 sql colde 來轉換值?

例如 02121955 -> 1955-02-12

您可以使用SUBSTRING來分離源。然後DATEFROMPARTS會將它們縫合在一起。

一些注意事項:日期不是以該格式或任何其他類似日期的格式在內部保存的。問題說來源是 6 個字元,但範例顯示 8 個。如果您需要找到世紀,則必須為此確定規則。

試試這個:

declare @vardate varchar(100)='02121955'
set @vardate= SUBSTRING(@vardate, 1, 2)+'-'+ SUBSTRING(@vardate, 3, 2)+'-'+SUBSTRING(@vardate, 5, 4)
select CONVERT(date, @vardate) as dataconverted

這應該為整個專欄做這項工作

UPDATE myTable
SET columnName = SUBSTRING(columnName, 1, 2)+'-'+ SUBSTRING(columnName, 3, 2)+'-'+SUBSTRING(columnName, 5, 4)
ALTER TABLE myTable
ALTER COLUMN columnName date

引用自:https://dba.stackexchange.com/questions/282574