如何将MySQL日期时间转换为Unix时间戳?

我们可以借助UNIX_TIMESTAMP()函数将MySQL日期和时间转换为Unix时间戳。

以下是查询。

mysql> SELECT UNIX_TIMESTAMP(STR_TO_DATE('Oct 19 2018 10:00PM', '%M %d %Y %h:%i%p'));

运行上面的查询后,我们将不会获得日期格式的输出,如下面的输出所示。此处显示的输出是Unix时间戳。

+------------------------------------------------------------------------+
| UNIX_TIMESTAMP(STR_TO_DATE('Oct 19 2018 10:00PM', '%M %d %Y %h:%i%p')) |
+------------------------------------------------------------------------+
|                                                             1539966600 |
+------------------------------------------------------------------------+
1 row in set (0.04 sec)

要获取实际的日期/时间,查询如下。

mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Oct 19 2018 10:00PM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p');

以下是输出。

+-----------------------------------------------------------------------------------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Oct 19 2018 10:00PM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p') |
+-----------------------------------------------------------------------------------------------------------+
| 10-19-2018 10:00:PM                                                                                       |
+-----------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)