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

Как да добавите поле за дата и час с поле за час

DECLARE @d DATETIME = '2013-02-18T18:34:40.330',
        @t TIME(7)  = '00:11:00.0000000';

SELECT EndDate = DATEADD(SECOND, DATEDIFF(SECOND, 0, @t), @d);

Резултат:

EndDate
-----------------------
2013-02-18 18:45:40.330

Сега наистина не трябва да съхранявате интервал за time колона. time има за цел да представлява момент във времето , а не продължителност . Какво се случва, когато интервалът е>=​​24 часа? Трябва да съхранявате началния и крайния час на дадено събитие (тези неща обикновено са поне толкова подходящи, колкото продължителността) и винаги можете да изчислите продължителността от тези точки.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поведение при кръстосано свързване (SQLServer 2008)

  2. Позоваване на псевдоним другаде в списъка SELECT

  3. Гъвкав външен ключ

  4. Настройка на изчакване за SQL Server

  5. Как да получите NextDayofWeek, ако преминете датата?