sql >> Database >  >> RDS >> Mysql

Hoe gebruik je een tekenreeks/kolomwaarde als mysql-datumintervalconstante (DAG, MAAND...)?

Helaas verwacht MySQL een trefwoord na INTERVAL en geen tekenreeks of numerieke waarde. Je kunt bereiken wat je wilt door een CASE-statement te gebruiken en de verschillende gevallen met de verschillende trefwoorden te geven.

Stel dat u als voorbeeld de waarde met de juiste eenheid aan de datum wilt toevoegen, dan ziet de SQL-instructie er als volgt uit:

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

Werkt trouwens ook in de WHERE-clausule :)



  1. Door de Oracle-grootte van rij-ophaalacties hoger in te stellen, wordt mijn app langzamer?

  2. Maak een gebruiker aan met alle privileges in Oracle

  3. Reflectie in PLSQL?

  4. Wat is Azure Data Studio?