sql >> Databáze >  >> RDS >> Mysql

Je datum v některých obdobích

Tato funkce by měla dělat to, co chcete. Spoléhá na to, že MySQL zpracovává booleovské výsledky jako 1 nebo 0 v číselném kontextu, tedy MAX volání se ve skutečnosti stane OR všech podmínek.

CREATE FUNCTION check_activity(project_id INT, check_date DATE)
RETURNS BOOLEAN
DETERMINISTIC
BEGIN
  RETURN (SELECT MAX(check_date BETWEEN ActiveFrom AND ActiveTo) FROM projects WHERE ProjId = project_id);
END
SELECT check_activity(20, '2018-01-10'), check_activity(20, '2018-02-01')

Výstup

check_activity(20, '2018-01-10')    check_activity(20, '2018-02-01')
1                                   0

Ukázka na dbfiddle




  1. PostgreSQL - klauzule GROUP BY

  2. Porovnání duplicitních hodnot sloupců Oracle pomocí Soundex, Jaro Winkler a Edit Distance (UTL_MATCH)

  3. Sledování synchronizace replik skupiny dostupnosti

  4. Psycopg2 copy_from vyvolá DataError:neplatná vstupní syntaxe pro celé číslo