2

我有一个将数据保存datehour字符串的表。我添加了两个字段date2hour2以便转换和保存当前字符串而不是 varchar。日期格式为dd.mm.YYYY. 我想将该字符串转换为日期格式并将其保存在每一行的相应列中。

数据表结构 数据表样本数据

我已阅读“如何在 mysql 中将字符串转换为日期?” 试图查询以下语句:

UPDATE `rawdata` SET `date2` = STR_TO_DATE(`date`, '%Y-%m-%d')

但我仍然NULLdate2列中看到值。什么都没有更新。

4

2 回答 2

4

STR_TO_DATE()函数的第二个参数将您提供的日期格式指定为字符串,在您的情况下,该格式与数据库中当前的格式不匹配。尝试使用:

UPDATE `rawdata` SET `date2` = STR_TO_DATE(`date`, '%d.%m.%Y')
于 2013-09-11T19:18:46.837 回答
0
UPDATE `rawdata` SET `date2` = STR_TO_DATE(`date`, '%Y-%m-%d')

应该按照手册

UPDATE `rawdata` SET `date2` = STR_TO_DATE(`date`, '%d.%m.%Y')

第二个参数,format对应于你的字符串当前的格式,而不是 MySQL 日期的格式。

或者,我会使用以下内容将date2hour2合并到一个日期时间字段中:

UPDATE `rawdata` SET `datetime2` = STR_TO_DATE(CONCAT(`date`,'.',`hour`), '%d.%m.%Y.%H:%i')

那当然是在创建datetime2具有日期时间数据类型的字段之后。

于 2013-09-11T19:24:17.037 回答