46

Is there any way to convert string to UNIX timestamp in MySQL?

For example, I have the string 2011-12-21 02:20pm which needs to be in Unix timestamp format.

1

2 Answers 2

73

UNIX_TIMESTAMP() does the trick:

SELECT UNIX_TIMESTAMP('2011-12-21 14:20:00');

However, the UNIX_TIMESTAMP() function only takes a standard MySQL formatted date. If you want to use the AM/PM notation, you will need to use STR_TO_DATE first like this:

SELECT UNIX_TIMESTAMP(
    STR_TO_DATE('2011-12-21 02:20pm', '%Y-%m-%d %h:%i%p')
);
Sign up to request clarification or add additional context in comments.

1 Comment

And fyi you can use from_unixtime() to convert a unix timestamp back into a timestamp object
37

Though @a'r has already given the correct answer, still something I would like to add here is that the two params STR_TO_DATE() function, 'date string' format and 'date format' string, should have matching placement of '-' and ':'.

For example following 4 queries return exact same result 2014-05-28 11:30:10

SELECT STR_TO_DATE('2014-05-28 11:30:10','%Y-%m-%d %H:%i:%s');

SELECT STR_TO_DATE('20140528 11:30:10','%Y%m%d %H:%i:%s');

SELECT STR_TO_DATE('2014-05-28 113010','%Y-%m-%d %H%i%s') ;

SELECT STR_TO_DATE('20140528 113010','%Y%m%d %H%i%s');

Note: the 2 params to STR_TO_DATE() function in each query has matching placement for '-' and ':'

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.