我的数据库September 20, 2011 18:00:00
中有以下格式的日期
但是,如果我想在mysql中应用日期函数,例如删除具有此日期或更早日期的记录,则无效。执行此操作的正确格式必须为2011-09-20 18:00:00
。
那么将第一个日期转换为第二个日期的简单方法是什么?或者,在表格中为日期时间格式创建另一个字段会更容易吗?
答案 0 :(得分:1)
$s = 'September 20, 2011 18:00:00';
$unix_timestamp = strtotime($s);
$mysql_timestamp = date('Y-m-d H:i:s',$unix_timestamp); // now looks like '2011-09-20 18:00:00'
答案 1 :(得分:0)
我不知道如何直接在mysql中执行此操作,但您可以创建一个帮助程序脚本。
以下伪代码:
$data = db_query("SELECT id, date FROM footable");
foreach ($data => $item) {
// repeat line below for all months
$new_item string_replace($item, "September", 9)
$new_date = regex_replace($new_item,
"([0-9]{1,2}) ([0-9]{1,2}), ([0-9]{4}) (.*)",
"$3-$2-$1 $4");
db_query("UPDATE footable SET date = $newdate");
}
答案 2 :(得分:0)
我没有看到全MySQL回答。 :)
假设您的“datetime”字段被称为“dt”,您可以通过首先将字符串重新格式化为MySQL将识别为{{1}的字符串格式的字符串,将其更改为正确的类型(DATETIME
) },然后更改列的类型。如果您或我有下面的拼写错误,请备份。
DATETIME