Я не смог узнать (поиск в Интернете, чтение mysql) Как получить значение DATETIME в секундах в MySQL.MYSQL - datetime to seconds
Я не собираюсь извлекать секунды из datetime, но конвертировать его в считанные секунды.
Я не смог узнать (поиск в Интернете, чтение mysql) Как получить значение DATETIME в секундах в MySQL.MYSQL - datetime to seconds
Я не собираюсь извлекать секунды из datetime, но конвертировать его в считанные секунды.
Если вы хотите иметь разницу между до значений DATETIME, используйте TIMESTAMPDIFF
:
TIMESTAMPDIFF (единица измерения, datetime_expr1, datetime_expr2)
Возвращает
datetime_expr2 – datetime_expr1
, гдеdatetime_expr1
иdatetime_expr2
являются дата или даты и времени выражения. Одним из выражений может быть дата, а другая - дата и время; значение даты рассматривается как дата-время, имеющее временную часть «00: 00: 00», где это необходимо. Единица для результата (целое число) задается аргументом unit. Правовые значения для единицы измерения совпадают с юридическими значениями, указанными в описании функцииTIMESTAMPADD()
.
mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
-> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
-> -1
mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
-> 128885
unit
также может быть HOUR
что то, что вы просили в одном из комментариев.
Если на "преобразования в секунды", вы имеете в виду "новообращенных к UNIX Timestamp" (т.е. числа секунд с 1970-01-01
), то вы можете использовать UNIX_TIMESTAMP
функции:
select UNIX_TIMESTAMP(your_datetime_field)
from your_table
where ...
И, ради завершения, для преобразования с временной отметки Unix в дату и время, вы можете использовать функцию FROM_UNIXTIME
.
good , и когда я хочу РАЗЛИЧИЕ между двумя датами в ЧАСЫ, следует ли использовать что-то вроде? : select (unix_timestamp ('2010-01-02 18:00:00') - unix_timestamp ('2010-01-01 16:00:00'))/60/60; – Mike
Я полагаю, что функция TIMESTAMPDIFF должна делать трюк: она позволяет указать желаемую единицу (см. Http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff) –
спасибо, Феликс уже предложил использовать timesteampdiff, вот что я хотел – Mike
Функция UNIX_TIMESTAMP (datetime) возвращает время unix, которое является числом секунд с 1 января по 1970 год 0000 UTC. Это может быть то, что вам нужно, но если вы имеете дело с датами рождения, исторические даты или даты после 2037
я использовал в MySQL метод
TO_SECONDS (ваша дата идет здесь), чтобы преобразовать дату в секундах от 0 года
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
Начиная с MySQL 5.5.0 Вы можете использовать to_seconds()
TO_SECONDS(FIELD_NAME)
FIELD_NAME должен быть DATETIME
Типу
Использование TIME_TO_SEC в предыдущих версиях для MySQL
ВЫБРАТЬ TIME_TO_SEC (время колонка) FROM таблицы
Я создал свой собственный запрос по вашей проблеме:
select (hour(*colname*)*3600 + minute(*colname*)*60 + second(*colname*))
from widgets
where id=1;
id=1
, если вам нужно взять определенную строку.Вопрос уже давно дан ответ, и принятый ответ также касается дней, а не только часов и минут. ОП пояснил в комментарии, что он хотел рассчитать разницу между двумя датами в часах. –
Извините, но я спрашиваю о целом DATETIME :( – Mike
@ Майк: См. Мой обновленный ответ. –
sweet :) Я отмечаю ваш ответ как правильный :) спасибо – Mike