выбор недействительных дат

0

В следующем примере я получаю все значения больше, чем "2009-11-29", а также NULL и "0000-00-00". Есть ли другой способ получить те же результаты?

mysql>select * from totest;
+---------------------+
| stime               |
+---------------------+
| 0000-00-00 00:00:00 | 
| 2009-12-12 12:22:32 | 
| 0000-00-00 00:00:00 | 
| 2009-01-12 12:22:32 | 
| 0000-00-00 00:00:00 | 
| NULL                | 
+---------------------+
6 rows in set (0.00 sec)

mysql>select * from totest where If(stime!='0000-00-00', stime >= '2009-11-29', 1);
+---------------------+
| stime               |
+---------------------+
| 0000-00-00 00:00:00 | 
| 2009-12-12 12:22:32 | 
| 0000-00-00 00:00:00 | 
| 0000-00-00 00:00:00 | 
| NULL                | 
+---------------------+
5 rows in set (0.00 sec)
  • 1
    ты пробовал или "ИЛИ"?
  • 0
    Можете ли вы уточнить свой вопрос? Что вы хотите вернуть 1) Неверные (нулевые) и нулевые даты? 2) Выберите «правильные» даты, превышающие «2009-11-29»
Показать ещё 1 комментарий
Теги:

2 ответа

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

Выбор недопустимых дат (нулевые даты и нуль)

      select * from totest 
      where stime = '0000-00-00' 
        OR stime IS NULL

Выбор только действительных дат больше, чем '2009-11-29'

      select * from totest 
      where stime != '0000-00-00' 
        AND stime IS NULL
        AND stime >= '2009-11-29'
0

Вы можете попробовать это?

select *
from totest
where 
    stime = '0000-00-00'
    OR stime IS NULL
    OR stime < '2009-11-29'

Ещё вопросы

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