Sample code for 30+ languages & platforms
SQL Server

Date/Time Expires Within N Seconds/Minutes/Hours/Days

Demonstrates the how to tell if a date/time is within N seconds, minutes, hours, or days of the current system time.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @dt int
    EXEC @hr = sp_OACreate 'Chilkat.CkDateTime', @dt OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    -- Set to the current system date/time.
    DECLARE @success int
    EXEC sp_OAMethod @dt, 'SetFromCurrentSystemTime', @success OUT

    EXEC sp_OAMethod @dt, 'GetAsTimestamp', @sTmp0 OUT, 1
    PRINT 'Now: ' + @sTmp0

    -- Add 10 minutes, making the date 10 minutes in the future.
    EXEC sp_OAMethod @dt, 'AddSeconds', @success OUT, 600

    EXEC sp_OAMethod @dt, 'GetAsTimestamp', @sTmp0 OUT, 1
    PRINT '10 minutes from now: ' + @sTmp0

    -- Is the date/time within 10 seconds of expiration (i.e. within 10 seconds of now)?
    DECLARE @b int
    EXEC sp_OAMethod @dt, 'ExpiresWithin', @b OUT, 10, 'seconds'

    PRINT 'Expires within 10 seconds: ' + @b

    -- Does the date/time expire within 5 minutes?
    EXEC sp_OAMethod @dt, 'ExpiresWithin', @b OUT, 5, 'minutes'

    PRINT 'Expires within 5 minutes: ' + @b

    -- Does the date/time expire within 15 minutes?
    EXEC sp_OAMethod @dt, 'ExpiresWithin', @b OUT, 15, 'minutes'

    PRINT 'Expires within 15 minutes: ' + @b

    -- Does the date/time expire within 1 hour?
    EXEC sp_OAMethod @dt, 'ExpiresWithin', @b OUT, 1, 'hour'

    PRINT 'Expires within 1 hour: ' + @b

    -- Does the date/time expire within 1 day?
    EXEC sp_OAMethod @dt, 'ExpiresWithin', @b OUT, 1, 'day'

    PRINT 'Expires within 1 day: ' + @b

    -- Output:

    -- 	Now: 2017-05-05T23:48:00-0500
    -- 	10 minutes from now: 2017-05-05T23:58:00-0500
    -- 	Expires within 10 seconds: False
    -- 	Expires within 5 minutes: False
    -- 	Expires within 15 minutes: True
    -- 	Expires within 1 hour: True
    -- 	Expires within 1 day: True

    EXEC @hr = sp_OADestroy @dt


END
GO