sql >> Base de Datos >  >> RDS >> Mysql

Obtenga la fecha del domingo entre dos fechas y el último día de un mes mysql

Como ahora mencionó que no tiene una tabla para las fechas, puede abordarlo de esta manera si no desea agregar una tabla de calendario genérica en su base de datos.

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

Puede convertir esto en un procedimiento si lo desea.

Todavía sería bueno si TIENES una mesa de calendario; como ha sugerido Tim.