Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie SQL w celu wygenerowania miesięcznych terminów płatności w zakresie dat

Możesz jak poniżej:

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)

Ile dni pozostało do końca miesiąca. Liczba znalezionych dni jest usuwana z innych miesięcy.

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

Wynik:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migracja bazy danych Microsoft Access do SQL Server

  2. Różnica serwera SQL (naprzeciw przecięcia)

  3. Kiedy używać wspólnego wyrażenia tabelowego (CTE)

  4. Jaka jest różnica między VARCHAR i NVARCHAR w serwerze SQL - SQL Server / T-SQL Tutorial Część 32

  5. jak mogę zaktualizować 100 najlepszych rekordów na serwerze sql?