MySQL 将日期字符串转换为 Unix 时间戳

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

Apr 15 2012 12:00AM

我从数据库得到的格式似乎有 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
381891 次浏览

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

考虑到你约会的形式,比如

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

将提供一个有效的时间戳。请查看 STR_TO_DATE文档以获得关于格式字符串的更多信息。

下面是如何使用 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,< a href = “ https://dev.mysql.com/doc/refman/8.0/en/date-and-time-function. html # function _ from-unixtime”rel = “ noReferrer”> FROM_UNIXTIME

来自 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