sql >> Database teknologi >  >> RDS >> Sqlserver

Generer datoer mellem datointervaller

Nem på SQL 2005+; nemmere, hvis du har en tal- eller taltabel. Jeg forfalskede det nedenfor:

DECLARE @StartDate DATE = '20110901'
  , @EndDate DATE = '20111001'

SELECT  DATEADD(DAY, nbr - 1, @StartDate)
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS Nbr
          FROM      sys.columns c
        ) nbrs
WHERE   nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)

Hvis du har en optællingstabel, skal du erstatte underforespørgslen med tabellen. Ingen rekursion.



  1. Sådan udføres en procedure med proceduren DBMS_SCHEDULER.CREATE_JOB

  2. Forespørg efter PostgreSQL med Npgsql og Entity Framework ved hjælp af unaccent

  3. Er der en bedre Oracle-operatør til at udføre nul-sikker ligestillingskontrol?

  4. Sådan tilføjes Active Directory-brugergruppe som login i SQL Server