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

MYSQL:Jak mogę znaleźć „data ostatniego poniedziałku” (problem z wydajnością)

Jeśli nie używasz starożytnego MySQL, możesz umieścić to w zapisanej funkcji.

CREATE FUNCTION `LastMonday`() RETURNS DATETIME    
  RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;

a następnie zadzwoń

select LastMonday() as LastMonday

Aktualizacja:

Jeśli masz problemy z wydajnością, możesz zachować wartość w zmiennej sesji. W ten sposób możesz mieć pewność, że zostanie ona obliczona tylko raz.

set @LastMonday=LastMonday();
select @Lastmonday; 

(w tym prostym zapytaniu nie ma to oczywiście żadnego znaczenia...)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalizacja wywołania SQL formuły haversine w PHP

  2. pasujące nazwy tabel z tabelami pokazowymi

  3. Jaki jest odpowiednik polecenia buforowania w MySQL?

  4. Jak zaimportować do MySQL ogromny plik CSV z 200,00 wierszami (asynchronicznie i szybko)?

  5. php nie zapisuje danych w mysql