sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger man en streng-/kolonneværdi som en mysql-datointervalkonstant (DAG, MÅNED...)?

Desværre forventer MySQL et søgeord efter INTERVAL og ikke nogen streng eller numerisk værdi. Du kan opnå det, du ønsker, ved at bruge en CASE-sætning og give de forskellige cases med de forskellige søgeord.

Lad os som et eksempel sige, at du vil tilføje værdien med den passende enhed til datoen, så ville SQL-sætningen være som følger:

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

Fungerer i øvrigt også i WHERE-sætningen :)



  1. Sådan vælger du hver n'te række i mySQL fra n

  2. PHP - MySQL - Slet række

  3. CAST DECIMAL til INT

  4. Sådan modelleres venskabsforhold