将时间和日期转换为mysql datetime

时间:2011-09-20 13:24:14

标签: mysql datetime

我的数据库September 20, 2011 18:00:00中有以下格式的日期 但是,如果我想在mysql中应用日期函数,例如删除具有此日期或更早日期的记录,则无效。执行此操作的正确格式必须为2011-09-20 18:00:00

那么将第一个日期转换为第二个日期的简单方法是什么?或者,在表格中为日期时间格式创建另一个字段会更容易吗?

3 个答案:

答案 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