我查询这个更新与投(日期日期时间)给出不同的结果
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