如何在mysql中获取字符串作为日期?

时间:2013-09-11 19:14:40

标签: php mysql sql date

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

Data table structure Data table sample data

我看过"how to convert a string to date in mysql?"试图查询以下声明:

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

但我仍在NULL列中看到date2个值。什么都没有更新。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

应该符合manual

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字段后。