0

我对数据库表的前 50 个左右条目的查询错误,因此我的日期字段中包含“2013 年 1 月 5 日”之类的条目。

有人可以帮助我完成一个查询,该查询将获取日期字段中的所有条目并将它们简单地转换为 unix 时间戳吗?

在这里研究了许多其他问题,但我没有发现任何东西似乎可以解决事后操纵/转换一组日期的问题。

谢谢

4

4 回答 4

1

选择所有行并strtotime用于获取时间戳值,然后更新行。

于 2013-02-06T07:20:36.697 回答
1

如果您使用的是 php,请使用“strtotime()”函数并更新数据库中的值。

于 2013-02-06T07:22:39.763 回答
0
SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');

在这里阅读更多http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

于 2013-02-06T07:22:42.123 回答
0

PHP;

$ts = strtotime("January 5th, 2013");
echo date("Y-m-d", $ts); // 2013-01-05

SQL;

UPDATE `table` SET `date_field` = UNIX_TIMESTAMP(`date_field`);

而且,如果您想更改列类型(我更喜欢INT类型以解决性能问题);

ALTER TABLE `table` MODIFY `date_field` INT UNSIGNED NOT NULL;

但是在此之后,您需要将所有数据作为整数插入到该列中,所以;

$time = time(); // or $time = strtotime("January 5th, 2013");
INSERT INTO `table` (`date_field`) VALUES ($time)
于 2013-02-06T07:23:40.693 回答