sql >> Databasteknik >  >> RDS >> Mysql

hur får jag månad från datum i mysql

Du var nära - fick jämförelsen baklänges (förutsatt startDate är en datatyp DATETIME eller TIMESTAMP):

SELECT * 
  FROM table 
 WHERE amount > 1000 
   AND MONTH(dateStart) = {$m}

Varningar:

Alternativ:

Eftersom att använda funktioner på kolumner inte kan använda index, skulle ett bättre tillvägagångssätt vara att använda BETWEEN och STR_TO_DATE funktioner:

WHERE startdate BETWEEN STR_TO_DATE([start_date], [format]) 
                    AND STR_TO_DATE([end_date], [format])

Se dokumentationen för formateringssyntax.

Referens:



  1. Datatrunkering:Data för långa för kolumn "logotyp" på rad 1

  2. Hur man lagrar återkommande datum med tanke på sommartid

  3. Vad du ska leta efter om din MySQL-replikering släpar efter

  4. Exempel på att konvertera "datum" till "datetimeoffset" i SQL Server (T-SQL)