sql >> Databasteknik >  >> RDS >> Sqlserver

Hur får man det totala antalet timmar mellan två datum i sql-servern?

@codeka svarade med timmarsdelen (från din titel) men i brödtexten av din fråga frågade du i timmar och minuter, så här är ett sätt

 select DATEDIFF(hh, @date1, @date2) as Hours_Difference,   
    DATEDIFF(mi,DATEADD(hh,DATEDIFF(hh, @date1, @date2),@date1),@date2) as Minutes_Difference

Vad detta gör i den första delen är vad @codeka visade. Det ger dig dateringsdifferensen mellan de två datumen i faktiska hela timmar. Den andra termen i sql ger datediffen i minuter mellan (första datumet + förflutna timmar) och det andra datumet. Du måste ta bort timmarna från ekvationen i minuterdelen, annars får du de faktiska minuterna mellan datumen. Datediff och dess tillåtna Datepart-identifierare kan undersökas här:
http://msdn.microsoft.com/en-us/library/ms189794.aspx



  1. Överför data från PostgreSQL till MySQL

  2. Tittar på databasen på heroku

  3. Hur hoppar man över tomma data i MySQL?

  4. hur man gör det snabbare att välja slumpmässiga rader i Oracle med en tabell med miljontals rader