0

我有一个名为 pm_msg 的表,其中包含一个时间列和以下值:

07-02-2013 18:11:00
27-01-2013 16:02:44
28-01-2013 10:30:26
30-01-2013 13:30:06

我想在运行 PDO SQL 查询时将它们转换为 Unix 时间戳。这是我到目前为止所做的,但它似乎返回了一个错误。我该怎么做呢?

$sql = "SELECT * from pm_msg ORDER BY (strtotime(time)) ASC;";
4

3 回答 3

1

strtotime在 MySQL 中不存在,你想要的UNIX_TIMESTAMP功能:

$sql = "SELECT * from pm_msg ORDER BY (UNIX_TIMESTAMP(time)) ASC;";

但是 - 您不需要将其转换为 UNIX 时间戳来对其进行排序。排序在日期上正确工作?也许您打算将其添加UNIX_TIMESTAMP到该SELECT部分?

于 2013-02-07T18:40:09.180 回答
0

UTC 或多或少与 GMT 相同 - 不考虑 DST。

因此,在春季和秋季,您需要考虑到这一点。

但是要使用 SQL 将日期/时间转换为 unixtime,请参见STR_TO_DATEUNIXTIMESTAMP

于 2013-02-07T18:48:59.300 回答
0

如果您现在使用varchar之类的东西,将时间列设置为datetime会更容易。

于 2013-02-07T20:19:49.197 回答