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

Изберете ден от седмицата от дата

Използвайте DAYOFWEEK във вашата заявка, нещо като:

SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;

Тук ще намерите цялата информация за събота през май.

За да получите най-бързо четене съхранявайте денормализирано поле, което е денят от седмицата (и каквото друго ви трябва). По този начин можете да индексирате колони и да избегнете пълно сканиране на таблицата.

Просто опитайте първо горното, за да видите дали отговаря на вашите нужди и ако не, добавете няколко допълнителни колони и съхранете данните при запис. Просто внимавайте за аномалии при актуализиране (уверете се, че актуализирате колоната day_of_week, ако промените event_date).

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте символите latin1 в UTF8 таблица в UTF8

  2. Как да експортирате / изхвърлите MySql таблица в текстов файл, включително имената на полета (известни още като заглавки или имена на колони)

  3. Динамично зареждане на информация в модален Twitter Bootstrap

  4. MySQL, копирането на файлове с таблици води до ГРЕШКА 1017 (HY000):Не мога да намеря файл:въпреки че е там

  5. Използвам ли JDBC пул за връзки?