Как конвертировать DateTime в число в MySQL? - PullRequest
12 голосов
/ 17 декабря 2009

Как я могу получить общее количество секунд с '1970-01-01 00:00:01' из экземпляра DateTime в MySQL?

Ответы [ 4 ]

26 голосов
/ 17 декабря 2009

Вы ищете UNIX_TIMESTAMP().

См .: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_unix-timestamp

Если UNIX_TIMESTAMP () вызывается с аргументом даты, он возвращает значение аргумента в секундах с UTC 1970-01-01 00:00:00.

6 голосов
/ 17 декабря 2009

Использовать UNIX_TIMESTAMP (dateField)

4 голосов
/ 05 июля 2016

UNIX_TIMESTAMP(datetime) принудительная локализация даты и времени, которая, в отличие от метки времени, сохраняется "как есть".

Для отмены исправления UTC на самом деле вам необходимо одно из следующих действий:

UNIX_TIMESTAMP(CONVERT_TZ(datetime, '+00:00', @@session.time_zone))

или

TIMESTAMPDIFF(SECOND,'1970-01-01 00:00:00',datetime)

Refs: 1 , 2 , 3 , 4

4 голосов
/ 17 декабря 2009
SELECT DATE_FORMAT(`value`, '%Y%m%d') AS `date_ymd` FROM `table_name`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...