web-dev-qa-db-ja.com

mysqlのタイムスタンプへの文字列

MySQLで文字列をUNIXタイムスタンプに変換する方法はありますか?

たとえば、文字列2011-12-21 02:20pmこれは、Unixタイムスタンプ形式である必要があります。

29
AvMishra

UNIX_TIMESTAMP()はトリックを行います:

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

ただし、UNIX_TIMESTAMP()関数は標準のMySQL形式の日付のみを取ります。 AM/PM表記を使用する場合、最初に _STR_TO_DATE_ を使用する必要があります。

_SELECT UNIX_TIMESTAMP(
    STR_TO_DATE('2011-12-21 02:20pm', '%Y-%m-%d %h:%i%p')
);
_
49
a'r

@ a'rはすでに正しい答えを与えていますが、ここで追加したいことは、2つのパラメータSTR_TO_DATE()関数、 'date string' format and 'date format' string、should 「-」と「:」の一致する配置があります。

たとえば、次の4つのクエリはまったく同じ結果を返します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');

注: 2つのパラメータSTR_TO_DATE()各クエリの関数には、「-」と「:」の配置が一致しています

23
sactiw