我有一个带有'testimport'表的数据库。 该表包含 - 一个列(DateOccurred),它是日期时间格式并包含0000-00-0000,00:00:00 - 包含20/03/2013 14:17 in varchar(255)utf8_general_ci格式的专栏(评论)。
我正在尝试将“评论”的内容转移到“Dateoccurred”,它应该存储为日期/时间,但仅限于ID为2的行。
我试过这个(和各种变化)没有运气。
UPDATE testimport SET DateOccurred = DATE_FORMAT(STR_TO_DATE(Comments, '%d/%m/%Y %h:%m:%s'), '%Y-%m-%d %h:%m:%s') WHERE ID=2
这会导致'DateOccurred'列更改为'Null'的内容。
任何人都可以告诉我哪里出错了。
答案 0 :(得分:1)
更改
STR_TO_DATE(Comments, '%d/%m/%Y %h:%m:%s')
到
STR_TO_DATE(Comments, '%d/%m/%Y %H:%i')
因为您没有标记秒数。此外,分钟使用%i
,小时数需要%H
。
点击此处查看完整列表:MySQL Docs
您的完整查询可以缩短/修改为
UPDATE testimport
SET DateOccurred = STR_TO_DATE(Comments, '%d/%m/%Y %H:%i')
WHERE ID = 2