sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man ett sträng-/kolumnvärde som en mysql-datumintervallkonstant (DAG, MÅNAD...)?

Tyvärr förväntar MySQL ett nyckelord efter INTERVAL och inte någon sträng eller numeriskt värde. Du kan uppnå vad du vill genom att använda en CASE-sats och ge de olika fallen med de olika nyckelorden.

Som ett exempel, låt oss säga att du vill lägga till värdet med lämplig enhet till datumet då skulle SQL-satsen vara som följer:

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

Fungerar även i WHERE-satsen förresten :)



  1. SQL Saknar höger parentes på order by-sats

  2. Hur lagrar man flera alternativ i en enda tabell?

  3. Introduktion till datakopplingar och relationer

  4. Laddar markörer från XML-fil till Google Map API