2012-06-21 122 views
94

如何将以下格式转换为unix时间戳?MySQL将datetime转换为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 
+0

是日期存储为文本数据库? – strnk

+1

这真的是MySQL的问题吗?你的[语法](http://dev.mysql.com/doc/refman//5.5/en/cast-functions.html#function_convert)不会提示。 –

+1

似乎是MSSQL的问题。 –

回答

165

尝试此查询为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') 
+0

这是用于MSSQL的吗? – redcoder

+5

@redcoder这是MYSQL –

26

你肯定要使用这两个STR_TO_DATE您的日期转换为MySQL的标准日期格式,并UNIX_TIMESTAMP从它那里得到的时间戳。

鉴于你日期的格式,像

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

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

10

对于当前日期只是在你的mysql query使用UNIX_TIMESTAMP()

-4

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 
+1

这个答案适用于MSSQL(虽然这个问题有些混淆)。 –