簡體   English   中英

使用ALTER COLUMN將datetime列轉換為varchar時,如何更改生成的日期格式?

[英]How can I change the format of the dates produced when using ALTER COLUMN to convert a datetime column to varchar?

我有一個datetime列,需要更改為varchar列。

使用下面的語句,生成的字符串具有以下格式:“ Jan 18 2010 5:28 PM”

ALTER TABLE Thinger
ALTER COLUMN LastUpdateDate varchar(16) NOT NULL

我希望生成的字符串具有yyyyMMdd格式(給出20100118)。 有沒有辦法做到這一點?

謝謝

不好,不好的主意 ……永遠不要將日期存儲在varchar列中,現在您將以不同的格式在其中存儲垃圾。為什么還要varchar(16)來使用yyyyMMdd?

如果您希望輸出采用其他格式,請在表示層中使用它或使用convert

SELECT CONVERT(CHAR(8),GETDATE(),112)

現在,如果您真的想做您想說的事

運行腳本,然后執行

UPDATE Table 
SET LastUpdateDate  =  CONVERT(CHAR(8),(CONVERT(DATETIME,CONVERT(varchar,LastUpdateDate))),112)

但是再次.. 壞壞壞主意

另外,SQL Server的下一版本將使格式化更加容易,請參見: SQL Server Denali CTP3中的格式化功能

試試這個腳本:

ALTER TABLE Thinger ADD LastUpdateDateText VARCHAR(16) NOT NULL
GO

UPDATE Thinger SET LastUpdateDateText = CONVERT(VARCHAR(8), LastUpdateDate, 112)
GO

ALTER TABLE Thinger DROP COLUMN LastUpdateDate
GO

sp_RENAME 'Thinger.LastUpdateDateText' , 'LastUpdateDate', 'COLUMN'
GO

暫無
暫無

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

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