我有一个表tLogin,字段dateAdded设置为VARCHAR。记录中的数据如下所示:
2012-09-21 15:51:38
因为数据存储为VARCHAR,所以我无法对其进行日期计算。
我想通过创建一个设置为DATE的新字段tempDate来解决问题,并将dateAdded中的数据转换为字段tempDate。 如何将dateAdded中的所有数据复制到tempDate中?我不介意在从dateAdded转换时丢失小时,分钟和秒。
答案 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