Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtenir la date du dimanche entre deux dates et le dernier jour d'un mois mysql

Puisque vous avez maintenant mentionné que vous n'avez pas de table pour les dates, vous pouvez l'aborder comme ça si vous ne voulez pas ajouter une table de calendrier générique sur votre base de données.

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

Vous pouvez en faire une procédure si vous le souhaitez.

Ce serait toujours bien si vous AVEZ une table de calendrier ; comme Tim l'a suggéré.