我对数据库表的前 50 个左右条目的查询错误,因此我的日期字段中包含“2013 年 1 月 5 日”之类的条目。
有人可以帮助我完成一个查询,该查询将获取日期字段中的所有条目并将它们简单地转换为 unix 时间戳吗?
在这里研究了许多其他问题,但我没有发现任何东西似乎可以解决事后操纵/转换一组日期的问题。
谢谢
选择所有行并strtotime
用于获取时间戳值,然后更新行。
如果您使用的是 php,请使用“strtotime()”函数并更新数据库中的值。
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
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)