sql >> Databáze >  >> RDS >> Sqlserver

Sql dotaz pro generování měsíčních výplatních termínů v časovém rozsahu

Můžete to udělat následovně:

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)

Kolik dní zbývá do konce měsíce. Zjištěný počet dní je odstraněn z ostatních měsíců.

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

Výsledek:

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. Html / Php formulář se nepřidává do SQL databáze

  2. Datatables - Výstup Json - PostgreSQL - Vrací hodnotu null

  3. Oracle ADF na JBoss:Problém s připojením zabalené Jdbc

  4. Drag and Drop v MS Access a podmíněné třídění