Как получить Unix Timestamp интервал между двумя значениями datetime наиболее эффективно в MySQL?

0

Этот способ, безусловно, работает, но он вызывает UNIX_TIMESTAMP 2 раза:

mysql> select UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP('2009-09-23 22:07:42');
+---------------------------------------------------------------+
| UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP('2009-09-23 22:07:42') |
+---------------------------------------------------------------+
|                                                           639 |
+---------------------------------------------------------------+
1 row in set (0.05 sec)
  • 0
    Вы действительно хотите знать, или вам просто нравится задавать вопросы? Ваш профиль показывает 463 заданных вопроса, но только 8 голосов за ответы, которые вам нравятся!
  • 0
    Серьезно, я действительно хочу знать это плохо.
Показать ещё 1 комментарий
Теги:
intervals

2 ответа

3
Лучший ответ

Не должны

TIMESTAMPDIFF(SECOND, now(), '2009-09-23 22:07:42')

сделать то же самое только с одним вызовом функции (не считая now())? (Нет доступа к MySQL прямо сейчас, а MSSQL работает немного иначе, поэтому не может протестировать).

В основном временная метка UNIX - это количество секунд со времен странной эпохи, поэтому разница - это просто разница в секундах. Кроме того, эта функция доступна только в MySQL 5 и более поздних версиях.

Но в общем, беспокойтесь о производительности, когда у вас есть проблема, напишите читаемый код до тех пор.

  • 0
    +1, не знал об этом. Есть опечатка, хотя ... :)
  • 0
    Доступно только в MySQL v5 +
Показать ещё 2 комментария
1
SELECT  TIME_TO_SEC(TIMEDIFF(NOW(), '2009-09-23 22:07:42'))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню