我查詢這個更新與投(日期日期時間)給出不同的結果
UPDATE maindb SET date = CAST(date as DATETIME) WHERE date LIKE'%1974%'
所以我期待的
date
1974-12-12
1974-12-13
1974-12-14
結果然而,當我查詢
select * from maindb where date like '%1974%'
結果就是這樣
May 28 1974 12:00AM
這是爲什麼?我記得有這樣的疑問
SET *Some code i forgot* 120
我該如何退後? 編輯:
備案我的date
列在varchar(20)
我不知道爲什麼,但公司希望它到一個新的數據庫/正常化,並有100K記錄。我知道,如果所有在date
列中的數據被設置爲yyyy-mm-dd
格式,您可以更改列datetime
你得到這個「錯誤」,因爲你的'date'字段是一個字符類型(例如, VARCHAR(20))。將日期時間轉換爲字符類型默認爲格式0(或100)。您忘記的代碼將其轉換爲格式120,例如'SELECT CONVERT(VARCHAR(20),date,120)FROM maindb;'。有關類型轉換的信息,請參閱[本頁](https://docs.microsoft.com/zh-cn/sql/t-sql/functions/cast-and-convert-transact-sql)上的「日期和時間樣式」 。 – ZLK
是的,我知道它是一個varchar。但是桌子已經有了100K的記錄。所以我希望它被轉換成適當的'datetime' – Wowie