Returns the number of date and time boundaries crossed between two dates
SQL DATEDIFF Syntax
DATEDIFF ( DatePart , StartDate , EndDate )
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate ='2007-06-05'
SET @EndDate ='2007-08-05'
SELECT DATEDIFF(Year, @StartDate, @EndDate) AS NewDate
Output = 0 Year
SELECT DATEDIFF(quarter, @StartDate, @EndDate) AS NewDate
Output = 1 quarter
SELECT DATEDIFF(Month, @StartDate, @EndDate) AS NewDate
Output = 2 Month
SELECT DATEDIFF(dayofyear,@StartDate, @EndDate) AS NewDate
Output = 61 day
SELECT DATEDIFF(Day, @StartDate, @EndDate) AS NewDate
Output = 61 Day
SELECT DATEDIFF(Week, @StartDate, @EndDate) AS NewDate
Output = 9 Week
SELECT DATEDIFF(Hour, @StartDate, @EndDate) AS NewDate
Output = 1464 Hour
SELECT DATEDIFF(minute, @StartDate, @EndDate) AS NewDate
Output = 87840 minute
SELECT DATEDIFF(second, @StartDate, @EndDate) AS NewDate
Output = 5270400 second
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate ='2007-06-05'
SET @EndDate ='2007-06-06'
SELECT DATEDIFF(millisecond, @StartDate, @EndDate) AS NewDate
Output = 86400000 millisecond
SQL DATEDIFF Function
SqlTutorials
Posted by Emil Chang at 6:18 AM 15 comments
Labels: SQL DateADD and DateDiff, SQL Dynamic Get Last and First Day
Monday, June 4, 2007
Returns a new datetime value based on adding an interval to the specified date.
SQL DATEADD Syntax
DATEADD ( datepart , number, date )
DECLARE @DateNow DATETIME
SET @DateNow='2007-06-04'
SELECT DATEADD(Year, 3, @DateNow) AS NewDate
Output = 2010-06-04 00:00:00.000
SELECT DATEADD(quarter, 3, @DateNow) AS NewDate
Output = 2008-03-04 00:00:00.000
SELECT DATEADD(Month, 3, @DateNow) AS NewDate
Output = 2007-09-04 00:00:00.000
SELECT DATEADD(dayofyear,3, @DateNow) AS NewDate
Output = 2007-06-07 00:00:00.000
SELECT DATEADD(Day, 3, @DateNow) AS NewDate
Output = 2007-06-07 00:00:00.000
SELECT DATEADD(Week, 3, @DateNow) AS NewDate
Output = 2007-06-25 00:00:00.000
SELECT DATEADD(Hour, 3, @DateNow) AS NewDate
Output = 2007-06-04 03:00:00.000
SELECT DATEADD(minute, 3, @DateNow) AS NewDate
Output = 2007-06-04 00:03:00.000
SELECT DATEADD(second, 3, @DateNow) AS NewDate
Output = 2007-06-04 00:00:03.000
SELECT DATEADD(millisecond, 3, @DateNow) AS NewDate
Output = 2007-06-04 00:00:00.003