Отображение ** сообщения об ошибке начала или конца ** со значениями дат с использованием mysql - PullRequest
0 голосов
/ 21 марта 2012

Я просто хочу отобразить Начальное или конечное сообщение об ошибке в моем столбце msg со значениями дат, используя mysql

enter image description here

Это мой запрос

SELECT `id`,`name`,`start_date`,`end_date` FROM teams 
WHERE sub_cat_id = '84' AND  SYSDATE() > `start_date` AND SYSDATE() < `end_date` ORDER BY `id` DESC;

Я немного запутался в том, чтобы отображать сообщения об ошибках, тогда как мне отслеживать сообщения о дате начала и окончания?

enter image description here

Если системная дата больше даты начала, сообщение будет отображаться начало или тот же сценарий для даты окончания, сообщение будет отображаться конец .

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Попробуйте:

SELECT `id`,`name`,`start_date`,`end_date`, '' `error_message`
FROM teams 
WHERE sub_cat_id = '84' AND  SYSDATE() > `start_date` AND SYSDATE() < `end_date` 
UNION ALL
SELECT NULL `id`, NULL `name`, NULL `start_date`, NULL `end_date`, 
       CASE WHEN MIN(`start_date`)<SYSDATE() THEN 'Start'
            WHEN MAX(`end_date`)>SYSDATE() THEN 'End'
            WHEN COUNT(*)=0 THEN 'SubCat'
       END `error_message`
FROM teams 
WHERE sub_cat_id = '84' AND  
      NOT EXISTS (SELECT 1 FROM teams 
                  WHERE sub_cat_id = '84' AND  SYSDATE() > `start_date` AND SYSDATE() < `end_date`)
ORDER BY `id` DESC;
0 голосов
/ 21 марта 2012

Спасибо, Марк Баннистер, за помощь

SELECT `id`,`name`,`start_date`,`end_date`,
     CASE WHEN SYSDATE() < `start_date`  THEN 'WAITING'        
          WHEN SYSDATE() >= `start_date` AND SYSDATE() <= `end_date` THEN 'START'
          WHEN SYSDATE() >= `end_date`  THEN 'END'
    END `status`
FROM teams 
WHERE sub_cat_id = '84' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...