154

如何将以下格式转换为 unix 时间戳?

Apr 15 2012 12:00AM

我从 DB 获得的格式似乎AM在最后。我试过使用以下方法,但没有奏效:

CONVERT(DATETIME, Sales.SalesDate, 103) AS DTSALESDATE,  
CONVERT(TIMESTAMP, Sales.SalesDate, 103) AS TSSALESDATE

where Sales.SalesDate value is Apr 15 2012 12:00AM
4

4 回答 4

250

以下是如何转换DATETIME为 UNIX 时间戳的示例:
SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

以下是如何更改日期格式的示例:
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p')

文档: UNIX_TIMESTAMP ,FROM_UNIXTIME

于 2012-06-21T08:10:16.353 回答
37

您当然必须使用两者STR_TO_DATE来将您的日期转换为 MySQL 标准日期格式,并 UNIX_TIMESTAMP从中获取时间戳。

鉴于您的日期格式,例如

UNIX_TIMESTAMP(STR_TO_DATE(Sales.SalesDate, '%M %e %Y %h:%i%p'))

将给你一个有效的时间戳。查看STR_TO_DATE文档以获取有关格式字符串的更多信息。

于 2012-06-21T08:07:23.870 回答
12

对于当前日期,只需UNIX_TIMESTAMP()在您的 MySQL 查询中使用。

于 2014-10-06T11:51:51.070 回答
-6

From http://www.epochconverter.com/

SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())

My bad, SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD. More on using timestamps with MySQL:

http://www.epochconverter.com/programming/mysql-from-unixtime.php
于 2015-02-19T12:44:52.900 回答