如何仅在mysql中将此日期转换为unix时间戳?

时间:2018-07-18 10:11:51

标签: mysql unix-timestamp

这是日期:2018-01-25T13:39:40-05:00
来自API。

到目前为止,我已经这样做了:SELECT UNIX_TIMESTAMP(STR_TO_DATE('2018-01-25T13:39:40-05:00', '%M %d %Y %h:%i%p')) AS time

但是它给了我NULL
我认为-05:00是时区。但是T是,我不知道。

也许还有另一种方法来取出T和-05:00并将24小时转换为12小时

1 个答案:

答案 0 :(得分:2)

您不必使用STR_TO_DATE函数。

您可以直接使用UNIX_TIMESTAMP。

  

使用日期参数调用UNIX_TIMESTAMP(),它返回值   自1970年1月1日00:00:00 UTC以来的秒数。

     

日期参数可以是DATE,DATETIME或TIMESTAMP字符串,也可以是YYMMDD,YYMMDDHHMMSS,YYYYMMDD或YYYYMMDDHHMMSS格式的数字。

     

服务器将日期解释为当前时区中的值,并将其转换为UTC中的内部值。客户可以设置自己的时区

     

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

SELECT UNIX_TIMESTAMP('2018-01-25T13:39:40-05:00') AS time

http://sqlfiddle.com/#!9/b2206f/1