Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Разница дат с временем в MySQL

В БД есть поле TIMESTAMP. Мне нужно получить сколько прошло от даты, которая указана в БД, до текущего времени. Делаю запрос:

1
 SELECT NOW(), date, (NOW() - date) as delta FROM tbl 

Вот результат:

NOW() | date | delta
2023-10-04 20:44:39 | 2023-10-04 20:33:55 | 1084

И, собственно, вопрос: а что это за цифра в delta?

Дополнен

Вменяемый вид, в моем случае в секундах, можно получить функцией TIMESTAMPDIFF:
SELECT NOW(), date, TIMESTAMPDIFF(SECOND, date, NOW()) as delta FROM tbl

По дате
По рейтингу
Аватар пользователя
Новичок

Это разница между NOW() и date, но...

Как сказано в документации MySQL по функции NOW(),

Returns the current date and time as a value in 'YYYY-MM-DD hh:mm:ss' or YYYYMMDDhhmmss format, depending on whether the function is used in string or numeric context.


Поскольку операция вычитания явно относится к numeric context, значения timestamp приводятся к виду 20231004204439 и 20231004203355, а разница этих значений и даёт 1084.

Аватар пользователя
Искусственный Интеллект

Очевидно, это разница между текущим временем и тем, которое хранится в твоей таблице.
Но! Не во всех базах она будет такой, как указано выше.
Все зависит от внутреннего представления.
Например, в Оракле время представлено в днях с первого января 1800-го года ЕМНИП.
Т. е. такой же запрос дал бы число 0,076 примерно.
Поэтому пользуйся этой штукой с осторожностью.