The SQL Server DATEADD()
function adds a specified number to a specified part of a date. This function is useful for performing date and time calculations.
SELECT DATEADD(datepart, number, date);
The DATEADD()
function takes three arguments:
datepart
: The part of the date to which the number is added. Common values include year
, quarter
, month
, day
, week
, hour
, minute
, second
, and millisecond
.number
: The number of dateparts to add to the date. This can be a positive or negative integer.date
: The date to which the number is added.Let's look at some examples of SQL Server DATEADD()
function queries:
SELECT DATEADD(day, 10, '2024-06-01') AS new_date;
This query adds 10 days to the date '2024-06-01'. The result will be:
new_date
----------
2024-06-11
SELECT DATEADD(month, -2, '2024-06-01') AS new_date;
This query subtracts 2 months from the date '2024-06-01'. The result will be:
new_date
----------
2024-04-01
SELECT DATEADD(hour, 5, '2024-06-01 12:00:00') AS new_date;
This query adds 5 hours to the datetime '2024-06-01 12:00:00'. The result will be:
new_date
-------------------
2024-06-01 17:00:00
SELECT order_date, DATEADD(day, 7, order_date) AS delivery_date
FROM orders;
This query adds 7 days to the order_date
column for each record in the orders
table. The result will show the original order_date
and the corresponding delivery_date
.
DECLARE @order_date DATETIME;
SET @order_date = '2024-06-01 08:00:00';
SELECT DATEADD(hour, 3, @order_date) AS new_date;
This query uses a variable to store a datetime value and then adds 3 hours to it. The result will be:
new_date
-------------------
2024-06-01 11:00:00
Let's go through a complete example that includes creating a table, inserting data, and using the DATEADD()
function.
This step involves creating a new table named events
to store some sample data with event dates.
CREATE TABLE events (
id INT PRIMARY KEY,
event_name VARCHAR(255),
event_date DATETIME
);
In this example, we create a table named events
with columns for id
, event_name
, and event_date
.
This step involves inserting some sample data into the events
table.
INSERT INTO events (id, event_name, event_date) VALUES (1, 'Event 1', '2024-06-01 10:00:00');
INSERT INTO events (id, event_name, event_date) VALUES (2, 'Event 2', '2024-07-01 14:00:00');
INSERT INTO events (id, event_name, event_date) VALUES (3, 'Event 3', '2024-08-01 09:00:00');
Here, we insert data into the events
table.
This step involves using the DATEADD()
function to add a specified number of days to the event_date
column.
SELECT id, event_name, event_date, DATEADD(day, 7, event_date) AS new_date
FROM events;
This query retrieves the id
, event_name
, event_date
, and the new date after adding 7 days to the event_date
column for each row in the events
table. The result will be:
id event_name event_date new_date
--- ----------- ------------------- -------------------
1 Event 1 2024-06-01 10:00:00 2024-06-08 10:00:00
2 Event 2 2024-07-01 14:00:00 2024-07-08 14:00:00
3 Event 3 2024-08-01 09:00:00 2024-08-08 09:00:00
The SQL Server DATEADD()
function is a powerful tool for adding a specified number to a specified part of a date. Understanding how to use the DATEADD()
function and its syntax is essential for effective date and time calculations in SQL Server.