Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да генерирам минутни интервали между две дати в T-SQL?

Можете да използвате рекурсивна заявка като тази:

declare @intervalMinutes int = 10
declare @myDates table (
myId int primary key identity,
startTime datetime,
endTime datetime
)

DECLARE @startTime DATETIME = '2016-07-10 08:00'
DECLARE @endTime DATETIME = '2016-07-10 09:00'

;WITH CTE AS
(
    SELECT  @startTime st
    UNION   ALL
    SELECT  dateadd(MINUTE,@intervalMinutes,st) st
    FROM    cte
    where   dateadd(MINUTE,@intervalMinutes,st) < @endTime
)
INSERT INTO @myDates(startTime,endTime)
SELECT st,dateadd(MINUTE,@intervalMinutes,st) FROM cte

SELECT  * FROm @myDates


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се прекрати извършеното връщане на SPID транзакция

  2. SQL заявка за извличане на средните стойности за 1day gap dob на клиенти

  3. Изявление за Sql Case в Sql IN

  4. Премахване на повтарящи се дублирани знаци

  5. SQL Server рекурсивно самостоятелно присъединяване