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

Získejte nedělní datum mezi dvěma daty a posledním dnem z jednoho měsíce mysql

Protože jste se nyní zmínili, že nemáte tabulku pro data, můžete k tomu přistupovat takto, pokud nechcete do databáze přidávat obecnou kalendářní tabulku.

declare @startdate datetime 
declare @enddate datetime
DECLARE @startdateLoop datetime

select @startdate = CAST(start as DATE), @enddate = CAST(end_date as DATE) from #t
set @startdateLoop = @startdate
CREATE TABLE #tempCal
  (dates datetime)

  WHILE @startdateLoop != @enddate 
  BEGIN
  INSERT INTO #tempCal
  SELECT @startdateLoop

  SET @startdateLoop = DATEADD(dd, 1, @startdateLoop)
  END

  SELECT * FROM #tempCal
  WHERE dates between @startdate and @enddate and DAYOFWEEK(dates) = 1

Pokud chcete, můžete to změnit na proceduru.

Stále by bylo hezké, kdybyste MÁTE tabulku kalendáře; jak Tim navrhl.



  1. Dotaz MySQL v Inno Setup

  2. Laravel 5.1 spotřebovávající soap wsdl službu pomocí ovladače a modelu

  3. Získejte DÉLKU DLOUHÉHO RAW

  4. Chyba syntaxe hledání a nahrazení MySQL