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

Chcę godziny, min, druga różnica od dwóch datetime

Możesz to zrobić w bardzo prosty sposób:

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)

... wynik to 00:10:38 (638s =600s + 38s =10 minut i 38 sekund)

Inny przykład:

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

Będzie działać aż do różnicy 86399 sekund (23:59:59):

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

... potem powróci do zera:

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. Jak upsert pandy DataFrame do tabeli Microsoft SQL Server?

  2. Jak rozwiązać Oświadczenie nie zwróciło błędu zestawu wyników?

  3. Jak uzyskać pierwszą i ostatnią datę bieżącego roku?

  4. Utwórz konto pocztowe bazy danych w programie SQL Server (T-SQL)

  5. SQL Server 2008 R2 — wyspy i luki