Как добавить, а также вычесть в одном SQL-запрос на основе startTime - PullRequest
0 голосов
/ 02 ноября 2011

IF startTime = 11.30 AND endTime = 12.30

, если пользователь задает время начала как 11.20, он должен вычесть время на десять минут [10] ви startTime, и endTime, и если время начала равно 11.50, это должно добавить двадцать минут [20]

Как этого добиться в одном запросе sql

 output: if the startTime =11.20
 startTime=11.20
 endTime=12.20


 output : if the startTime =11.50
 startTime=11.50
 endTime=12.50

1 Ответ

1 голос
/ 02 ноября 2011

Ваше описание и примеры по-прежнему не совпадают, поэтому я могу привести только очень обобщенный пример, основанный на вашем комментарии ...

Как добавить или вычесть интервал на основе оператора CASE ...

CASE
  WHEN MINUTE(startTime) = 20 THEN DATE_ADD(startTime, -10 MINUTES)
  WHEN MINUTE(startTime) = 50 THEN DATE_ADD(startTime,  20 MINUTES)
  ELSE NULL
END AS newStartTime,
CASE
  WHEN MINUTE(startTime) = 20 THEN DATE_ADD(endTime, -10 MINUTES)
  WHEN MINUTE(startTime) = 50 THEN DATE_ADD(endTime,  20 MINUTES)
  ELSE NULL
END AS newEndTime

Вы можете иметь столько предложений WHEN, сколько пожелаете, изменив условия MINUTE(startTime) = 20 на все, что захотите, и получите все, что захотите в предложении THEN.Затем, если у вас есть дело, которое не соответствует ни одному из предложений WHEN, укажите желаемый результат в предложении ELSE.

Вам нужно будет повторить логику для startTime иendTime поля.

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