從 CSV 檔案匯入日期列,其中有字串值顯示為
| 日期 |
|---|
| 44705 |
| 44704 |
| 44703 |
我想將整個列轉換為日期格式
| 日期 |
|---|
| “2022-05-22” |
| “2022-05-21” |
| “2022-05-20” |
我使用了這個腳本,它允許我生成結果。
SELECT dateadd(d,44703,'1899-12-30') as date
問題是,我如何將此腳本應用于一系列值(表中有 700 行)。例如 44000 到 44705。我希望將所有字串值轉換為日期格式。
uj5u.com熱心網友回復:
select cast (44705-1 as smalldatetime) gives 2022-05-25 00:00
因此,您可以使用上述內容更新列。
見https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=dc24abb3025e0f3796e7d978ba406be3
更新陳述句的新小提琴,此行將根據測驗更新所有行。
update #test
set pdate = cast(dateadd(d,tdate-2,'1899-12-30') as smalldatetime)
uj5u.com熱心網友回復:
要將字串轉換為日期,我們可以添加臨時日期列并填充它并洗掉舊列并將新列重命名為舊列
alter table TableName add NewColumnName date null; --create temporary column
update TableName set NewColumnName =dateadd(d,cast(cast([date] as float) as int)-2,'1899-12-30') --fill it
alter table TableName drop column [date]--delete old column
EXEC sp_RENAME 'TableName.NewColumnName' , 'date', 'COLUMN'--rename new one to old one
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/487002.html
