[英]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.