我有一个表tLogin字段dateAdded设置为一个VARCHAR。记录中的数据如下所示:如何从VARCHAR转换为DATE
2012-09-21 15:51:38
由于数据存储为VARCHAR,因此我无法对其执行日期计算。
我想通过创建一个新字段tempDate将其设置为DATE,并将数据从dateAdded转换为字段tempDate来解决此问题。 如何将dateAdded中的所有数据复制到tempDate中?我不介意在从dateAdded转换时丢失小时,分钟和秒。
我有一个表tLogin字段dateAdded设置为一个VARCHAR。记录中的数据如下所示:如何从VARCHAR转换为DATE
2012-09-21 15:51:38
由于数据存储为VARCHAR,因此我无法对其执行日期计算。
我想通过创建一个新字段tempDate将其设置为DATE,并将数据从dateAdded转换为字段tempDate来解决此问题。 如何将dateAdded中的所有数据复制到tempDate中?我不介意在从dateAdded转换时丢失小时,分钟和秒。
update t set t.tempDate = cast(t.dateAdded as datetime) from tLogin t
杰克先生建议,原代码从我:
select cast('2012-09-21 15:51:38' as datetime)
你也应该提供你的初始化的MySQL服务器版本的手册所以他意识到,也许他不需要额外的专栏 –
只要日期/时间都在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语法中有错误; (VARCHAR(10),CONVERT(DATETIME,dateAdded),120)) FROM tLogin T'at line 2 – SimonRH