Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8622917
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 12, 20262026-06-12T07:09:49+00:00 2026-06-12T07:09:49+00:00

I want to get Get Time Difference between two datetime in stroed procedure. then

  • 0

I want to get Get Time Difference between two datetime in stroed procedure. then i need to cast that answer to varchar. i don’t know how to get that value. i am a new one for stroed procedure. i am using sql server 2008

declare @tdate1 datetime
declare @date2 datetime
declare @finaltime varchar

set @enddate = '2004-10-18 07:53:35.000'
set @startdate = '2004-10-18 15:28:57.000'

if @startdate >= @enddate
// This is what i want to do..

else
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-12T07:09:50+00:00Added an answer on June 12, 2026 at 7:09 am
    SELECT DATEDIFF(year, @startdate, @enddate)
    

    try this to start you in the right direction.

    year represents the period of measure you want to return

    Here is a link to an MSDN Article that may be helpful

    DATEDIFF (Transact-SQL)

    Other Versions

    Updated: December 2, 2015

    THIS TOPIC APPLIES TO:

    yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse
    Returns the count (signed integer) of the specified datepart boundaries crossed between the specified startdate and enddate.
    For larger differences, see DATEDIFF_BIG (Transact-SQL). For an overview of all Transact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).
    Topic link icon Transact-SQL Syntax Conventions
    Syntax

    DATEDIFF ( datepart , startdate , enddate )
    

    — Azure SQL Data Warehouse and Parallel Data Warehouse

    DATEDIFF (datepart ,startdate ,enddate )
    

    Arguments

    datepart

    Is the part of startdate and enddate that specifies the type of boundary crossed. The following table lists all valid datepart arguments. User-defined variable equivalents are not valid.

    datepart

    Abbreviations

    year
    yy, yyyy
    quarter
    qq, q
    month
    mm, m
    dayofyear
    dy, y
    day
    dd, d
    week
    wk, ww
    hour
    hh
    minute
    mi, n
    second
    ss, s
    millisecond
    ms
    microsecond
    mcs
    nanosecond
    ns
    startdate
    

    Is an expression that can be resolved to a time, date, smalldatetime, datetime, datetime2, or datetimeoffset value. date can be an expression, column expression, user-defined variable or string literal. startdate is subtracted from enddate.

    To avoid ambiguity, use four-digit years. For information about two digits years, see Configure the two digit year cutoff Server Configuration Option.
    enddate

    See startdate.
    Return Type
    int

    Return Value
    Each datepart and its abbreviations return the same value.
    If the return value is out of range for int (-2,147,483,648 to +2,147,483,647), an error is returned. For millisecond, the maximum difference between startdate and enddate is 24 days, 20 hours, 31 minutes and 23.647 seconds. For second, the maximum difference is 68 years.
    If startdate and enddate are both assigned only a time value and the datepart is not a time datepart, 0 is returned.
    A time zone offset component of startdate or endate is not used in calculating the return value.
    Because smalldatetime is accurate only to the minute, when a smalldatetime value is used for startdate or enddate, seconds and milliseconds are always set to 0 in the return value.
    If only a time value is assigned to a variable of a date data type, the value of the missing date part is set to the default value: 1900-01-01. If only a date value is assigned to a variable of a time or date data type, the value of the missing time part is set to the default value: 00:00:00. If either startdate or enddate have only a time part and the other only a date part, the missing time and date parts are set to the default values.
    If startdate and enddate are of different date data types and one has more time parts or fractional seconds precision than the other, the missing parts of the other are set to 0.
    datepart Boundaries
    The following statements have the same startdate and the same endate. Those dates are adjacent and differ in time by .0000001 second. The difference between the startdate and endate in each statement crosses one calendar or time boundary of its datepart. Each statement returns 1. If different years are used for this example and if both startdate and endate are in the same calendar week, the return value for week would be 0.

    SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(quarter, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(month, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(dayofyear, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(week, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(hour, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(minute, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(second, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    SELECT DATEDIFF(millisecond, '2005-12-31 23:59:59.9999999'
    , '2006-01-01 00:00:00.0000000');
    

    Remarks
    DATEDIFF can be used in the select list, WHERE, HAVING, GROUP BY and ORDER BY clauses.
    DATEDIFF implicitly casts string literals as a datetime2 type. This means that DATEDIFF does not support the format YDM when the date is passed as a string. You must explicitly cast the string to a datetime or smalldatetime type to use the YDM format.
    Specifying SET DATEFIRST has no effect on DATEDIFF. DATEDIFF always uses Sunday as the first day of the week to ensure the function is deterministic.
    Examples
    The following examples use different types of expressions as arguments for the startdate and enddate parameters.
    A. Specifying columns for startdate and enddate
    The following example calculates the number of day boundaries that are crossed between dates in two columns in a table.

    CREATE TABLE dbo.Duration
        (
        startDate datetime2
        ,endDate datetime2
        );
    INSERT INTO dbo.Duration(startDate,endDate)
        VALUES('2007-05-06 12:10:09','2007-05-07 12:10:09');
    SELECT DATEDIFF(day,startDate,endDate) AS 'Duration'
    FROM dbo.Duration;
    

    — Returns: 1
    B. Specifying user-defined variables for startdate and enddate
    The following example uses user-defined variables as arguments for startdate and enddate.

    DECLARE @startdate datetime2 = '2007-05-05 12:10:09.3312722';
    DECLARE @enddate datetime2 = '2007-05-04 12:10:09.3312722'; 
    SELECT DATEDIFF(day, @startdate, @enddate);
    

    C. Specifying scalar system functions for startdate and enddate
    The following example uses scalar system functions as arguments for startdate and enddate.

    SELECT DATEDIFF(millisecond, GETDATE(), SYSDATETIME());
    

    D. Specifying scalar subqueries and scalar functions for startdate and enddate
    The following example uses scalar subqueries and scalar functions as arguments for startdate and enddate.
    USE AdventureWorks2012;
    GO

    SELECT DATEDIFF(day,(SELECT MIN(OrderDate) FROM Sales.SalesOrderHeader),
        (SELECT MAX(OrderDate) FROM Sales.SalesOrderHeader));
    

    E. Specifying constants for startdate and enddate
    The following example uses character constants as arguments for startdate and enddate.

    SELECT DATEDIFF(day, '2007-05-07 09:53:01.0376635'
        , '2007-05-08 09:53:01.0376635');
    

    F. Specifying numeric expressions and scalar system functions for enddate
    The following example uses a numeric expression, (GETDATE ()+ 1), and scalar system functions, GETDATE and SYSDATETIME, as arguments for enddate.

    USE AdventureWorks2012;
    GO
    SELECT DATEDIFF(day, '2007-05-07 09:53:01.0376635', GETDATE()+ 1) 
        AS NumberOfDays
    FROM Sales.SalesOrderHeader;
    GO
    USE AdventureWorks2012;
    GO
    SELECT DATEDIFF(day, '2007-05-07 09:53:01.0376635', DATEADD(day,1,SYSDATETIME())) AS NumberOfDays
    FROM Sales.SalesOrderHeader;
    GO
    G. Specifying ranking functions for startdate
    The following example uses a ranking function as an argument for startdate.
    USE AdventureWorks2012;
    GO
    SELECT p.FirstName, p.LastName
        ,DATEDIFF(day,ROW_NUMBER() OVER (ORDER BY 
            a.PostalCode),SYSDATETIME()) AS 'Row Number'
    FROM Sales.SalesPerson s 
        INNER JOIN Person.Person p 
            ON s.BusinessEntityID = p.BusinessEntityID
        INNER JOIN Person.Address a 
            ON a.AddressID = p.BusinessEntityID
    WHERE TerritoryID IS NOT NULL 
        AND SalesYTD <> 0;
    

    H. Specifying an aggregate window function for startdate
    The following example uses an aggregate window function as an argument for startdate.

    USE AdventureWorks2012;
    GO
    SELECT soh.SalesOrderID, sod.ProductID, sod.OrderQty,soh.OrderDate
        ,DATEDIFF(day,MIN(soh.OrderDate) 
            OVER(PARTITION BY soh.SalesOrderID),SYSDATETIME() ) AS 'Total'
    FROM Sales.SalesOrderDetail sod
        INNER JOIN Sales.SalesOrderHeader soh
            ON sod.SalesOrderID = soh.SalesOrderID
    WHERE soh.SalesOrderID IN(43659,58918);
    GO
    

    Examples: Azure SQL Data Warehouse Public Preview and Parallel Data Warehouse
    The following examples use different types of expressions as arguments for the startdate and enddate parameters.
    I. Specifying columns for startdate and enddate
    The following example calculates the number of day boundaries that are crossed between dates in two columns in a table.

    CREATE TABLE dbo.Duration (
        startDate datetime2
        ,endDate datetime2
        );
    INSERT INTO dbo.Duration(startDate,endDate)
        VALUES('2007-05-06 12:10:09','2007-05-07 12:10:09');
    SELECT TOP(1) DATEDIFF(day,startDate,endDate) AS Duration
    FROM dbo.Duration;
    

    — Returns: 1
    J. Specifying scalar subqueries and scalar functions for startdate and enddate
    The following example uses scalar subqueries and scalar functions as arguments for startdate and enddate.
    — Uses AdventureWorks

    SELECT TOP(1) DATEDIFF(day,(SELECT MIN(HireDate) FROM dbo.DimEmployee),
        (SELECT MAX(HireDate) FROM dbo.DimEmployee)) 
    FROM dbo.DimEmployee;
    

    K. Specifying constants for startdate and enddate
    The following example uses character constants as arguments for startdate and enddate.

    -- Uses AdventureWorks
    
    SELECT TOP(1) DATEDIFF(day, '2007-05-07 09:53:01.0376635'
        , '2007-05-08 09:53:01.0376635') FROM DimCustomer;
    

    L. Specifying ranking functions for startdate
    The following example uses a ranking function as an argument for startdate.
    — Uses AdventureWorks

    SELECT FirstName, LastName
    ,DATEDIFF(day,ROW_NUMBER() OVER (ORDER BY 
            DepartmentName),SYSDATETIME()) AS RowNumber
    FROM dbo.DimEmployee;
    

    M. Specifying an aggregate window function for startdate
    The following example uses an aggregate window function as an argument for startdate.
    — Uses AdventureWorks

    SELECT FirstName, LastName, DepartmentName
        ,DATEDIFF(year,MAX(HireDate)
                 OVER (PARTITION BY DepartmentName),SYSDATETIME()) AS SomeValue
    FROM dbo.DimEmployee
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to get the difference between two Java Date objects. I've used Joda-Time
I want to get the time difference in hundredth second between two touches float
I want to get the difference between two times P (start time) and Q
I want to get the difference between two times. - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated];
I want to calculate the average CPU usage % between two points of time.
I want to count the time elapsed between two events in nanoseconds. To do
I want to calculate the difference between two dates. Currently, I am doing: Calendar
TL;DR: I need to get the difference between HH:MM:SS.ms and HH:MM:SS.ms as HH:MM:SS:ms What
I need to be able to compute differences between two data/time values which represent
I want to calculate the difference of days between two dates. My code works

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.