Sql-Server
如何從 DATEADD 中刪除 TIME 部分?
我正在嘗試創建一些測試數據,其中每個員工都有一個隨機的生日。我完成了隨機化部分,但它沒有以我想要的格式返回結果。注意:DateOfBirth 列使用 VARCHAR 數據類型。
/****** Generate Random Date For Each Row (Between 1900 - 2015) ******/ UPDATE CCCINC.dbo.Employees SET DateOfBirth = DATEADD(DAY, ABS(CHECKSUM(NEWID()) % 41975), '1900-01-01');
結果:
Feb 28 1930 12:00AM
如何從結果中刪除 TIME 部分?另外,如果我想將 DATE 格式更改為 YYYYMMDD,我將如何實現呢?
好吧,假設有人拿著槍指著你的頭,迫使你不要將數據類型更改為更明智和合乎邏輯的東西:
UPDATE CCCINC.dbo.Employees SET DateOfBirth = CONVERT(CHAR(8), DATEADD(DAY, ABS(CHECKSUM(NEWID()) % 41975), '1900-01-01'), 112);
強烈,強烈,強烈建議您更改該列的數據類型以使用正確的數據類型(
DATE
)。然後,您可以只使用原始查詢,而完全不用擔心“格式”。格式是您在呈現數據時擔心的,而不是在儲存數據時擔心的。