SQL DATEADD Function is used to add specific date interval to the existing date. For example, For every product order we will save the Ordered Date and we can use this SQL Dateadd function to generate the expected delivery date.
SQL DATEADD Syntax
DATEADD (Datepart, Number, Date)
Datepart: It is the part of a given data to which we are going add the Number argument. The following table will display the list of available datepart argument in SQL Server
Datepart | Abbreviations | Description |
---|---|---|
year | yy,yyyy | This will add specified number of years (in second argument) to the given date |
quarter | qq, q | Add specified number of Quarters (in second argument) to a given date |
month | mm, m | Add Months to the given date |
dayofyear | dy, y | This will add dayofyear to the given date |
day | dd, d | This will add specified number of days to the given date |
week | wk, ww | Add specified number of Weeks (in second argument) to a given date |
weekday | dw, w | Add Weekdays to a given date |
hour | hh | This will add Hours to the date |
minute | mi, n | This datepart in Sql Server Dateadd add specified number of Minutes to the given date |
second | ss, s | Add Seconds to the specified date |
millisecond | ms | This will add Milliseconds to the given date |
microsecond | mcs | Add Microseconds to the given date |
nanosecond | ns | Add Nanoseconds to a specified date |
Date: Please specify the valid SQL Server date as third argument and it can be column, expression or any variable.
Number: Please specify the number you want to add.
- If you specify the positive integer as the second argument (Number), SQL DATEADD function will add the specified number to the given date.
- If you specify the Negative integer, the DATEADD function will subtract that from the given date.
- And, If you specify the Decimal number as the second argument (Number), the DATEADD function will truncate the decimal values and add specified number to the given date.
Positive integer in SQL DATEADD
In this Sql Dateadd example, we are going to use the positive integer as a second argument
DECLARE @DateAdd datetime2 = '2015-01-01 14:24:04.1234567' SELECT 'YEAR' AS [DatePart], DATEADD(year, 1, @DateAdd) AS [New Date] UNION ALL SELECT 'QUARTER', DATEADD(quarter,1,@DateAdd) UNION ALL SELECT 'MONTH', DATEADD(month, 1, @DateAdd) UNION ALL SELECT 'DAYOFYEAR', DATEADD(dayofyear, 1, @DateAdd) UNION ALL SELECT 'DAY', DATEADD(day, 1, @DateAdd) UNION ALL SELECT 'WEEK', DATEADD(week, 1, @DateAdd) UNION ALL SELECT 'WEEKDAY', DATEADD(weekday,1,@DateAdd) UNION ALL SELECT 'HOUR', DATEADD (hour, 1, @DateAdd) UNION ALL SELECT 'MINUTE', DATEADD(minute, 1, @DateAdd) UNION ALL SELECT 'SECOND', DATEADD(second, 16, @DateAdd) UNION ALL SELECT 'MILLISECOND', DATEADD(millisecond, 1, @DateAdd) UNION ALL SELECT 'MICROSECOND', DATEADD(microsecond, 50, @DateAdd) UNION ALL SELECT 'NANOSECOND',DATEADD(nanosecond,500,@DateAdd)
We declared one variable and assigned the date and time to that variable
DECLARE @DateAdd datetime2 = '2015-01-01 14:24:04.1234567'
The SQL Dateadd function will add 1 year to the given date
SELECT 'YEAR', DATEADD(year, 1, @DateAdd)
Next, we asked the SQL Dateadd function to add 1 month to the given date
SELECT 'MONTH', DATEADD(month, 1, @DateAdd)
Negative Integer in SQL DATEADD
In this Sql Server Dateadd example, we use the Negative integer as a second argument
DECLARE @DateAdd datetime2 = '2015-01-01 14:24:04.1234567' SELECT 'YEAR' AS [DatePart], DATEADD(year, -1, @DateAdd) AS [New Date] UNION ALL SELECT 'QUARTER', DATEADD(quarter, -1, @DateAdd) UNION ALL SELECT 'MONTH', DATEADD(month, -1, @DateAdd) UNION ALL SELECT 'DAYOFYEAR', DATEADD(dayofyear, -1, @DateAdd) UNION ALL SELECT 'DAY', DATEADD(day, -1, @DateAdd) UNION ALL SELECT 'WEEK', DATEADD(week, -1, @DateAdd) UNION ALL SELECT 'WEEKDAY', DATEADD(weekday, -1, @DateAdd) UNION ALL SELECT 'HOUR', DATEADD (hour, -1, @DateAdd) UNION ALL SELECT 'MINUTE', DATEADD(minute, -1, @DateAdd) UNION ALL SELECT 'SECOND', DATEADD(second, -14, @DateAdd)
We asked the SQL Dateadd function to add 1 year to the given date but the function is subtracting 1 year from it. This is because Negative value is used to subtract
SELECT 'YEAR', DATEADD(year, -1, @DateAdd)
We asked the Dateadd function to add 1 Month to the given date but the function is subtracting 1 Month from it. This is because Negative value is used to subtract
SELECT 'MONTH', DATEADD(month, -1, @DateAdd)
Decimal Values in SQL DATEADD
In this Date Function example we are going to use the decimal value as a second argument
DECLARE @DateAdd datetime2 = '2015-01-01 14:24:04.1234567' SELECT 'YEAR' AS [DatePart], DATEADD(year, 2.23, @DateAdd) AS [New Date] UNION ALL SELECT 'QUARTER', DATEADD(quarter, 3.98, @DateAdd) UNION ALL SELECT 'MONTH', DATEADD(month, -4.51, @DateAdd)
We asked the SQL Dateadd function to add 2.23 years to the given date but the function added 2 years only. This is because .23 values are truncated
SELECT 'YEAR', DATEADD(year, 2.23, @DateAdd)
We asked the Dateadd function to add 4.51 months to the given date but the function subtracted 4 months from given date. This is because, Negative value is used to subtract and .51 value is truncated
SELECT 'MONTH', DATEADD(month, -4.51, @DateAdd)