如何从VARCHAR转换为DATE

时间:2014-02-11 17:35:43

标签: mysql sql

我有一个表tLogin,字段dateAdded设置为VARCHAR。记录中的数据如下所示:

2012-09-21 15:51:38

因为数据存储为VARCHAR,所以我无法对其进行日期计算。

我想通过创建一个设置为DATE的新字段tempDate来解决问题,并将dateAdded中的数据转换为字段tempDate。 如何将dateAdded中的所有数据复制到tempDate中?我不介意在从dateAdded转换时丢失小时,分钟和秒。

2 个答案:

答案 0 :(得分:1)

update t set t.tempDate = cast(t.dateAdded as datetime) from tLogin t
正如杰克先生建议的那样,我的原始代码是:

select cast('2012-09-21 15:51:38' as datetime)

答案 1 :(得分:0)

只要日期/时间都在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