MYSQL: Porównanie daty NULL z CURRENT_DATE
Mam tabelę MYSQL artykułów z wiadomościami z polami „date_start” i „date_end”, aby określić, które wiadomości mają być wyświetlane w witrynie. Artykuły są publicznie dostępne, jeśli data_start jest wcześniejsza niż dzisiaj, a data_end nie minęła (po dniu dzisiejszym).
Problem:
Chciałbym, aby administrator zostawił date_end NULL, jeśli artykuł jest trwały i nie wygasa. To oczywiście nie działa z moim wyborem:
SELECT * FROM pf_news WHERE date_start <= CURRENT_DATE() AND date_end >= CURRENT_DATE()
Pozostawia artykuły z
NULL date_end. Próbowałem trochę majstrować przy stwierdzeniach IF, ale to mnie zmyliło. Czy istnieje łatwy sposób, aby to zrobić, czy też powinienem ustawić date_end na
3000-01-01, jeśli pozostanie pusta? :)
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
lub inne podobne grupowanie logiczne.
Anonimowy użytkownik
Potwierdzenie od:
Można tego również użyć w SQL Server, ale nazywają to funkcją „ISNULL”.
Po prostu ustaw sobie przypomnienie kalendarza na 31.12.1999, aby zmienić kod! :)
Anonimowy użytkownik
Potwierdzenie od:
A] date_end jest większa niż teraz lub jeśli jest pusta
B] date_end musi być obecna i większa niż data bieżąca
Anonimowy użytkownik
Potwierdzenie od:
0 wydaje się działać dobrze dla mnie
Anonimowy użytkownik
Potwierdzenie od:
Zatem jeśli ma wartość NULL, to w porównaniu zostanie użyta przyszła data „9999-1-1”.
Ale po tej dacie pęknie :-)