SQL-Abfrage-wo() Datum Jahr $Jahr
Speicher ich Daten in meiner Datenbank in einer Spalte date
Daten geben.
Sagen wir, ich habe Spalte date
wo Speicher ich Daten wie diese "2011-01-01", "2012-01-01", "2012-02-02" etc.
Nun brauche ich SQL, wählt nur Zeilen aus, in denen date
gleich 2012
SELECT * FROM table WHERE date=hasSomehowYearEqualTo=2012
Was wäre die Abfrage wie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun NICHT verwenden
YEAR(date)
- diese berechnetYEAR(date)
für alle Termine, auch für diejenigen, die Sie nie verwenden. Es wird auch Gebrauch machen von einem index - unmöglich schlimmsten Fall auf der DB-Schicht.Verwenden
Als Allgemeine Regel gilt: Wenn Sie die Wahl haben zwischen einer Berechnung eine Konstante und eine Berechnung für ein Feld, verwenden Sie die ehemalige.
WHERE `date` LIKE '$year-%'
.EXPLAIN
. Es wird angezeigt, dass MySQL ist intelligent genug, um es herauszufinden, für Termine.Check-out die
YEAR()
docs Funktion für MySQLselect * from table where DATEPART(YEAR,[DATUM])=2012