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

mysql - znacznik czasu wyszukiwania według godziny dnia

Możesz użyć GODZINA() funkcja:

SELECT * FROM 'table' WHERE HOUR(`updatetime`) = 9

Niestety, skuteczność tego zapytania będzie straszna , jak tylko przejdziesz przez kilka tysięcy wierszy - funkcje nie są indeksowalne, więc przy każdym uruchomieniu tego zapytania nastąpi pełne skanowanie tabeli.

Co zrobiliśmy w podobnej sytuacji:utworzyliśmy kolejną kolumnę updatetime_hour , zindeksował go i wypełnił przy wstawieniu (i zaktualizował przy aktualizacji); wtedy zapytanie staje się szybkie:

SELECT * FROM 'table' WHERE `updatetime_hour` = 9

Tak, zdenormalizowaliśmy dane i jest to trochę bardziej porządkowe, ale nie widzę jeszcze szybszego rozwiązania. (Rozważyliśmy i zmierzyliśmy wyzwalacze wstawiania i aktualizacji, aby wypełnić updatetime_hour z updatetime , ale odmówiono wykonania; sprawdź, czy byłyby dla Ciebie przydatne).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP — Używanie PDO z tablicą klauzul IN

  2. Jak wybrać datę i godzinę bez sekund w mysql?

  3. Porządek alfanumeryczny według w Mysql

  4. PHP strtotime():data pokazująca „1970-01-01” po konwersji

  5. Różnica między mysql a mysqli