sql >> Database >  >> RDS >> Mysql

MySQL - BETWEEN selecteert niet de juiste resultaten

Zie dit gerelateerde vraag.

Zoals anderen al hebben gezegd, is uw primaire probleem niet de tijd. Een paar opties om dat aan te pakken:

  1. Gebruik een functie om de DateTime naar een Date te converteren. Ik raad deze optie niet aan, omdat het waarschijnlijk de functie niet-sargeable .

  2. Breid uw BETWEEN . uit om het laatste moment van de dag expliciet op te nemen:(let op:dit is de laatst mogelijke waarde die MS SQL kan opslaan, weet niet of MySQL dezelfde waarde heeft)

    SELECT * FROM `punches` WHERE `date` 
    BETWEEN '08/20/11 00:00:00.000' AND '08/31/11 23:59:59.997'
    
  3. Gebruik een < voor de bovenste waarde

    SELECT * FROM `punches` WHERE `date` >= '08/20/11' AND `date` < '09/01/11'
    

Ik denk eigenlijk dat de laatste makkelijker is, in de meeste situaties.

Ik veronderstel dat je andere dingen zou kunnen doen, zoals het gegevenstype van de kolom wijzigen, maar ik heb hier aangenomen dat je alleen geïnteresseerd bent in het wijzigen van de zoekopdracht.

** Disclaimer:ik ben een MS SQL-man, niet MySQL



  1. applicatie verbinding maken met database

  2. hoe krijg ik de maand vanaf de datum in mysql

  3. Eén record verwijderen uit Entity Framework?

  4. MySQL komt overeen met 2 van de 5 velden