sql >> Database >  >> RDS >> Sqlserver

Sql-query om maandelijkse betalingsdatums binnen een datumbereik te genereren

U kunt als volgt:

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)

Hoeveel dagen zijn er nog voor het einde van de maand. Het aantal gevonden dagen wordt verwijderd uit andere maanden.

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

Resultaat:

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. Triggers en tafelvergrendeling in MySQL

  2. Hoe SQLServer-database en MySQL-database te synchroniseren

  3. Doctrine genererende query met verkeerde tabelalias

  4. Null afhandelen in de beste functie in Oracle