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

MySQL заявка годишна седмица от текущата седмица да започне в четвъртък, да завърши в сряда

Можете да се възползвате от WEEKDAY() който връща число, представляващо деня от седмицата (0 =понеделник, 6 =неделя) и някои прости математически изчисления за пренаписване на тази заявка.

Извадете деня от седмицата, в който искате да започне седмицата (във вашия случай 4 =четвъртък) от избраната дата, добавете 7 и вземете остатъка от 7. Това ще ви даде броя дни, които трябва да извадите, за да получите началото на диапазона.

Подобна логика се прилага за изчисляване на крайната дата на диапазона.

SELECT * 
FROM transactions 
WHERE DATE(transactionDate)
    BETWEEN DATE_SUB(DATE(NOW()), INTERVAL (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
        AND DATE_ADD(DATE(NOW()), INTERVAL 6 - (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
ORDER BY transactionDate DESC;

За различна начална дата заменете деня от седмицата с 4 в заявката.



  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. Как управлявате бази данни при разработка, тестване и производство?

  3. Node MySQL изпълнява множество заявки възможно най-бързо

  4. запазете формата за въвеждане на текстово поле след използване на mysql_real_escape_string за съхранение

  5. MySQL (Windows10) ПЪЛНОТЕКСТОВО търсене с MyISAM таблици не работи