Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - BETWEEN няма да избере правилни резултати

Вижте това свързано въпрос.

Както други споменаха, основният ви проблем не е да отчитате времето. Няколко опции за справяне с това:

  1. Използвайте функция за преобразуване на DateTime в дата. Не препоръчвам тази опция, тъй като тя вероятно ще направи функцията не подлежи на препариране .

  2. Разширете своя BETWEEN да включите изрично последния момент от деня:(забележка:това е най-новата възможна стойност, която MS SQL може да съхранява, не знам дали MySQL има същата стойност)

    SELECT * FROM `punches` WHERE `date` 
    BETWEEN '08/20/11 00:00:00.000' AND '08/31/11 23:59:59.997'
    
  3. Използвайте < за горната стойност

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

Всъщност мисля, че последното е по-лесно в повечето ситуации.

Предполагам, че бихте могли да направите други неща, като например да промените типа данни на колоната, но тук предположих, че просто се интересувате от промяна на заявката.

** Отказ от отговорност:Аз съм човек с MS SQL, а не с 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 комбинира изглед на две таблици с различен брой записи

  2. Срив на услугата XAMPP MySQL след рестартиране

  3. Вземане само на знаци отляво и отдясно на конкретен знак в mySQL

  4. Как мога да сортирам резултат от mysql по списък с приоритетни идентификатори?

  5. Синтаксис на грешка в MySQL 1064, но всичко изглежда наред