Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - BETWEEN nie wybierze poprawnych wyników

Zobacz ten powiązany pytanie.

Jak wspomnieli inni, twoim głównym problemem nie jest rozliczenie czasu. Kilka opcji, jak sobie z tym poradzić:

  1. Użyj funkcji, aby przekonwertować DateTime na Date. Nie polecam tej opcji, ponieważ prawdopodobnie spowoduje to, że funkcja nie do sarge .

  2. Rozwiń swoje BETWEEN aby wyraźnie uwzględnić ostatni moment dnia:(uwaga:jest to najnowsza możliwa wartość, jaką może przechowywać MS SQL, nie wiem, czy MySQL ma tę samą wartość)

    SELECT * FROM `punches` WHERE `date` 
    BETWEEN '08/20/11 00:00:00.000' AND '08/31/11 23:59:59.997'
    
  3. Użyj < dla górnej wartości

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

Właściwie uważam, że to ostatnie jest łatwiejsze w większości sytuacji.

Przypuszczam, że możesz zrobić inne rzeczy, takie jak zmiana typu danych kolumny, ale założyłem tutaj, że jesteś zainteresowany tylko zmianą zapytania.

** Zastrzeżenie:jestem facetem od MS SQL, nie MySQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL znajduje pierwszy dostępny weekend

  2. Jak dodać klauzulę WHERE w instrukcji MySQL Insert?

  3. MySQL SELECT z wielu tabel, wielu GROUP BY i group_concat?

  4. Model danych encji ASP.net 4.0 Mysql nie traktuje poprawnie wyliczeń Mysql

  5. Różnica między bazami danych w pamięci a bazą danych w pamięci dyskowej