Skip to content
Advertisement

How to add date and time in SQL Server

I have two variables @date of type datetime and @time of type time. I want to add both to get another datetime variable. And I want to perform further calculations on it.

Ex:

Declare @date datetime
Declare @time time

I want something like this

@date = @date + @time (but not concatenation)

SELECT @Startdate = DATEADD(DAY, -1, @date )

Is there any way?

Advertisement

Answer

You can tranform your time to seconds and add them to your datetime value:

DECLARE @datetime DATETIME = GETDATE(),
        @time TIME = '01:16:24',
        @timeinseconds INT

PRINT 'we add ' + CAST(@time AS VARCHAR(8)) + ' to ' + CONVERT(VARCHAR,@datetime,120)+ ':'


SELECT @timeinseconds = DATEPART(SECOND, @time)
                        + DATEPART(MINUTE, @time) * 60
                        + DATEPART(HOUR, @time) * 3600

SET @datetime = DATEADD(SECOND,@timeinseconds,@datetime)

PRINT 'The result is: ' + CONVERT(VARCHAR,@datetime,120)

Output:

we add 01:16:24 to 2015-07-17 09:58:45:
The result is: 2015-07-17 11:15:09
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement