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

Jak wygenerować interwały minutowe między dwiema datami w T-SQL?

Możesz użyć zapytania rekurencyjnego w ten sposób:

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. SQL Server i C#:pobierz ostatnio wstawiony identyfikator

  2. Napraw komunikat 8117 „Operand typ danych varchar jest nieprawidłowy dla operatora sumy” w SQL Server

  3. Wybieranie z tabeli, w której nazwa jest przekazywana jako zmienna

  4. Klauzula SQL OVER() - kiedy i dlaczego jest przydatna?

  5. TSQL:transakcja Try-Catch w wyzwalaczu