MySQL DATE_ADD не работает - PullRequest
       14

MySQL DATE_ADD не работает

0 голосов
/ 14 сентября 2009

У меня есть два столбца: beginTime и duration. Я пытаюсь вычислить время окончания. Проблема в том, что я получаю пустые результаты обратно.

Я пробовал несколько вещей.

DATE_ADD(startTime, INTERVAL `duration` MINUTE) AS endTime

DATE_ADD(startTime, INTERVAL '10' MINUTE) AS endTime

DATE_ADD(startTime, INTERVAL 10 MINUTE) AS endTime

Но каждый раз, когда результат пуст. startTime не пустой. Это поле времени в формате 09:00:00.

Может ли кто-нибудь помочь мне с этим?

Ответы [ 3 ]

1 голос
/ 14 сентября 2009

DATE_ADD вернет NULL, если формат времени неправильный, вместе с предупреждением:

mysql> \W
Show warnings enabled.
mysql> SELECT DATE_ADD('25:00:00', INTERVAL 10 MINUTE) AS endTime
    -> ;
+---------+
| endTime |
+---------+
| NULL    |
+---------+
1 row in set, 1 warning (0.00 sec)

Warning (Code 1292): Incorrect datetime value: '25:00:00'

Также обратите внимание, что 'hh:mm:ss' не является правильным форматом даты и времени. Вам также необходимо указать год, месяц и день.

Не могли бы вы включить предупреждения в MySQL и повторить запрос с вашими данными?

0 голосов
/ 14 сентября 2009

В DATE_ADD первым параметром считается поле даты, а не поле времени. Можете ли вы попробовать изменить время начала на формат даты ('0000-00-00 00:00:00') и попробовать?

0 голосов
/ 14 сентября 2009

Это работает для меня:

SELECT DATE_ADD(`startTime`, INTERVAL 10 MINUTE) AS endTime FROM `users` WHERE 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...