Mysql 如何将VARCHAR转换为日期
我有一个表tLogin,其字段dateAdded设置为VARCHAR。记录中的数据如下所示:Mysql 如何将VARCHAR转换为日期,mysql,sql,Mysql,Sql,我有一个表tLogin,其字段dateAdded设置为VARCHAR。记录中的数据如下所示: 2012-09-21 15:51:38 因为数据存储为VARCHAR,所以我无法对其执行日期计算 我想通过创建一个设置为日期的新字段tempDate来解决这个问题,并将数据从dateAdded转换为tempDate字段。 如何将DateAdd中的所有数据复制到tempDate中?我不介意在从DateAdd转换时损失小时、分钟和秒 update t set t.tempDate = cast(t.dat
2012-09-21 15:51:38
因为数据存储为VARCHAR,所以我无法对其执行日期计算
我想通过创建一个设置为日期的新字段tempDate来解决这个问题,并将数据从dateAdded转换为tempDate字段。
如何将DateAdd中的所有数据复制到tempDate中?我不介意在从DateAdd转换时损失小时、分钟和秒
update t set t.tempDate = cast(t.dateAdded as datetime) from tLogin t
正如杰克先生所说,我的原始代码是:
select cast('2012-09-21 15:51:38' as datetime)
只要日期/时间都在varchar字段中,您就可以简单地使用:
SELECT CONVERT(DATETIME, dateAdded)
FROM tLogin
如果要去除时间戳,可以执行以下操作:
SELECT CONVERT(DATE,CONVERT(VARCHAR(10),CONVERT(DATETIME,dateAdded),120))
FROM tLogin
作为更新:
UPDATE T
SET tempDate = CONVERT(DATE,CONVERT(VARCHAR(10),CONVERT(DATETIME,dateAdded),120))
FROM tLogin T
你也应该提供你的初步建议,让他意识到也许他不需要额外的专栏。我尝试了这个建议,但没有一个奏效。下面是一个示例错误消息:您的SQL语法中有一个错误;检查与您的MySQL服务器版本对应的手册,以了解第2行中tLogin T的CONVERT(VARCHAR(10),CONVERT(DATETIME,dateAdded),120))附近使用的正确语法