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

Искам часове, мин., секунди разлика от две дати и време

Можете да го направите по много прост начин:

declare  @date1 datetime, @date2 datetime
set @date1=DATEADD(s,-638,getdate())
set @date2=GETDATE()

select convert(char(8),dateadd(s,datediff(s,@date1,@date2),'1900-1-1'),8)

... резултатът е 00:10:38 (638s =600s + 38s =10 минути и 38 секунди)

Друг пример:

select distinct convert(char(8),dateadd(s,datediff(s, CRDATE , GETDATE() ),'1900-1-1'),8) from sysobjects order by 1

Ще работи до разлика от 86399 секунди (23:59:59):

select convert(char(8),dateadd(s,datediff(s
    , DATEADD(s,-86399,GETDATE())
    , GETDATE()
),'1900-1-1'),8)

... след това ще се върне на нула:

select convert(char(8),dateadd(s,datediff(s
    , DATEADD(s,-86400,GETDATE())
    , GETDATE()
),'1900-1-1'),8)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извикване на съхранена процедура с върната стойност

  2. Как връщате имената на колоните на таблица?

  3. Как да промените атрибут на колона с помощта на sql скрипт

  4. експортиране от sql сървър към excel файл с помощта на asp.net и vb.net?

  5. Има ли вградена функция, която може да конвертира числата в думи в sql сървъра