Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obter data de domingo entre duas datas e o último dia de um mês mysql


Como você mencionou agora que não tem uma tabela para as datas, você pode abordá-la assim se não quiser adicionar uma tabela de calendário genérica em seu banco de dados.
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

Você pode transformar isso em um procedimento, se quiser.

Ainda seria bom se você TEM uma tabela de calendário; como Tim sugeriu.