sql >> Database teknologi >  >> RDS >> Mysql

Få søndagsdato mellem to dato og sidste dag fra en måned mysql

Da du nu nævnte, at du ikke har en tabel for datoerne, kan du gribe det an på denne måde, hvis du ikke vil tilføje en generisk kalendertabel på din database.

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

Du kan gøre dette til en procedure, hvis du vil.

Ville stadig være rart, hvis du HAR et kalenderbord; som Tim har foreslået.



  1. MySQL Trigger kun efter opdatering, hvis rækken er ændret

  2. Exec lagret procedure i dynamisk temp tabel

  3. Udfyld datasæt med tabelnavne fra lagret procedure

  4. Opdater med gruppe af