Hejsan Om fälten heter y, m resp d: Prestandamässigt är det bäst att inte använda formler i wheresatsen.Date_Add SQL
Har problem med en SQL-fråga som jag ska köra mot en mysql-db.
så här ska den se ut:
SQLstr = "select * from tabell where to_days(date_add('2008-01-01',INTERVAL days DAY)) < to_days(curdate()))"
som den är nu så fungerar den utmärkt.
Nu är det så "fiffigt" att jag har 3 fält i databasen, ett för år , ett för månad och ett för dag.
Kan jag på något sätt ersätta '2008-01-01' med dessa 3 fält??
mvh Magnus Sv: Date_Add SQL
date_add(CONCAT(y, '-', m, '-', d), INTERVAL days DAY)Sv: Date_Add SQL
Bästa vore nog att göra
where tabell.year < Y or (tabell.year = Y and (tabell.month < M or (tabell.month = M and tabell.day < D)))
Om du har en formel i where måste databasen gå igenom alla poster i tabelle, beräkna formeln och sen se vilka som skall med i urvalet.
Med formeln ovan kan databasen använda index för att göra urvalet.