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

时间:2012-06-21 07:50:27

标签: mysql datetime timestamp unix-timestamp

如何将以下格式转换为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 个答案:

答案 0 :(得分:206)

尝试CONVERT DATETIME to UNIX TIME STAMP

的此查询
SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

此查询CHANGE DATE FORMATE

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')

答案 1 :(得分:34)

您肯定必须同时使用STR_TO_DATE将日期转换为MySQL标准日期格式,并使用UNIX_TIMESTAMP来获取时间戳。

考虑到你日期的格式,比如

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

将为您提供有效的时间戳。查看STR_TO_DATE文档以获取有关格式字符串的更多信息。

答案 2 :(得分:11)

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

答案 3 :(得分:-5)

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