sql >> Databasteknik >  >> RDS >> Mysql

varchar datum och tid jämförelse problem

Varchar-datum är onda och de är inte riktiga datum, den bästa lösningen är att använda mysqls ursprungliga datumdatatyper.

Eftersom du inte kan ändra datatypen kan du använda str_to_date() funktion och här hur det fungerar

mysql> select str_to_date('01/08/2015','%d/%m/%Y') as d ;
+------------+
| d          |
+------------+
| 2015-08-01 |
+------------+

Så frågan för select skulle vara

select * from table_name
where
str_to_date(date_column,'%d/%m/%Y')
between
str_to_date('01/08/2015','%d/%m/%Y')
and
str_to_date('01/10/2015','%d/%m/%Y')


  1. MySQL Rekursiv få alla barn från förälder

  2. NodeJS Postgres-fel getaddriinfo ENOTFOUND

  3. MySQL-infogning vid dubblettuppdatering för icke-PRIMÄR nyckel

  4. Mysql-fel:Användaren som har angetts som definierare ('mysql.infoschema'@'localhost') existerar inte' när han försöker dumpa tabellutrymmen