我有一个名为 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;";
strtotime
在 MySQL 中不存在,你想要的UNIX_TIMESTAMP
功能:
$sql = "SELECT * from pm_msg ORDER BY (UNIX_TIMESTAMP(time)) ASC;";
但是 - 您不需要将其转换为 UNIX 时间戳来对其进行排序。排序在日期上正确工作?也许您打算将其添加UNIX_TIMESTAMP
到该SELECT
部分?
UTC 或多或少与 GMT 相同 - 不考虑 DST。
因此,在春季和秋季,您需要考虑到这一点。
但是要使用 SQL 将日期/时间转换为 unixtime,请参见STR_TO_DATE或UNIXTIMESTAMP
如果您现在使用varchar之类的东西,将时间列设置为datetime会更容易。