sql >> Databáze >  >> RDS >> Mysql

MYSQL:Jak mohu najít „datum minulého pondělí“ (problém s výkonem)

Pokud nepoužíváte starodávné MySQL, můžete to zabalit do uložené funkce.

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

a pak zavolejte

select LastMonday() as LastMonday

Aktualizace:

Pokud máte problémy s výkonem, můžete zachovat hodnotu v proměnné relace. Můžete si tak být jisti, že se bude počítat pouze jednou.

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

(v tomto jednoduchém dotazu na tom samozřejmě nezáleží...)



  1. Výchozí pořadí řádků ve SELECT dotazu - SQL Server 2008 vs SQL 2012

  2. jak seřadit pořadí LEFT JOIN v dotazu SQL?

  3. Vyberte a vraťte pouze kontrolní součet (nikoli tabulku) z tabulky kontrolních součtů v mysql

  4. Jak zabránit Mysql Connector/J v převodu časového pásma DATE a TIME?