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

Jak použít hodnotu řetězce/sloupce jako konstantu intervalu data mysql (DEN, MĚSÍC...)?

Bohužel MySQL očekává klíčové slovo po INTERVAL a ne žádnou řetězcovou nebo číselnou hodnotu. Můžete dosáhnout toho, co chcete, použitím příkazu CASE a uvedením různých případů pomocí různých klíčových slov.

Řekněme například, že chcete k datu přidat hodnotu s příslušnou jednotkou, pak by příkaz SQL vypadal následovně:

SELECT CASE unit
       WHEN "DAY" THEN date_add(date, INTERVAL value DAY)
       WHEN "MONTH" THEN date_add(date, INTERVAL value MONTH)
       END
       AS newDate
FROM table

Mimochodem funguje také v klauzuli WHERE :)



  1. psycopg2:vložte více řádků jedním dotazem

  2. Křížové zobrazení v mySQL?

  3. Řešení chyb nesouladu architektury při používání aplikace Microsoft Access

  4. Omezení cizího klíče se nezdaří