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

Получавайте на всеки час за период от време

Не са необходими цикли, рекурсивни CTE или таблица с числа.

DECLARE 
  @start TIME(0) = '11:00 AM', 
  @end   TIME(0) =  '2:00 PM';

WITH x(n) AS 
(
  SELECT TOP (DATEDIFF(HOUR, @start, @end) + 1) 
  rn = ROW_NUMBER() OVER (ORDER BY [object_id]) 
  FROM sys.all_columns ORDER BY [object_id]
)
SELECT t = DATEADD(HOUR, n-1, @start) FROM x ORDER BY t;


  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 2008

  2. Преобразувайте „datetimeoffset“ в „time“ в SQL Server (T-SQL примери)

  3. как да извлека само годината от датата в sql server 2008?

  4. Как да конвертирате низ от дата и час без разделители в SQL Server като дата и час?

  5. Coldfusion:Справяне с нулеви стойности в полето за дата