Подтвердить что ты не робот

Строка в timestamp в mysql

Есть ли способ конвертировать строку в временную метку UNIX в MySQL?

Например, у меня есть строка 2011-12-21 02:20pm, которая должна быть в формате timestamp unix.

4b9b3361

Ответ 1

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

Ответ 2

Хотя @a'r уже дал правильный ответ, еще кое-что, что я хотел бы добавить здесь, состоит в том, что два параметра STR_TO_DATE(), формат даты и формат даты, строка должна иметь соответствующее размещение '-' и ':'.

Например, следующие 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() функция в каждом запросе имеет соответствующее размещение для '-' и ':'