Как преобразовать DateTime в число в MySQL?

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

4 ответов


вы ищете UNIX_TIMESTAMP().

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

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


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


SELECT DATE_FORMAT(`value`, '%Y%m%d') AS `date_ymd` FROM `table_name`;

UNIX_TIMESTAMP(datetime) принудительная локализация 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