sql >> Databasteknik >  >> RDS >> Sqlserver

SQL-fråga för att generera månatliga betalningsdatum inom ett datumintervall

Du kan enligt nedan:

DECLARE @SelectedDate DATETIME = '2016.01.30'
SELECT
     DATEADD(DAY, -1 - (DAY(EOMONTH(@SelectedDate)) - DAY(@SelectedDate)),  DATEADD(MONTH, v.m, DATEFROMPARTS(YEAR(@SelectedDate), 1, 1)))   
FROM
    (VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12)) AS v(m)

Hur många dagar är det kvar innan månadens slut. Antalet dagar som hittats tas bort från övriga månader.

DAY(EOMONTH(@SelectedDate) (31) - DAY(@SelectedDate) (30) =left days (1)

Resultat:

2016-01-30
2016-02-28
2016-03-30
2016-04-29
2016-05-30
2016-06-29
2016-07-30
2016-08-30
2016-09-29
2016-10-30
2016-11-29
2016-12-30


  1. Vad är det snabbaste sättet att bygga om PostgreSQL-statistik från noll/noll med ANALYS?

  2. Hur gör man en LIKE-sökning med krypterad data?

  3. Få polygoner nära en lat,long i MySQL

  4. MySQL-datumkonvertering