Time Series Analysis in SQL Server
Maham Faisal Khan
Senior Data Science Content Developer
(Photo by Aron Visuals)
SELECT
GETDATE() AS DateTime_LTz,
GETUTCDATE() AS DateTime_UTC;
SELECT
SYSDATETIME() AS DateTime2_LTz
SYSUTCDATETIME() AS DateTime2_UTC;
Results:
DateTime_LTz | DateTime_UTC | DateTime2_LTz | DateTime2_UTC |
---|---|---|---|
2019-03-07 21:21:33.670 | 2019-03-08 02:21:33.670 | 2019-03-07 21:21:33.6716402 | 2019-03-08 02:21:33.6716402 |
DECLARE
@SomeDate DATETIME2(3) = '2019-03-01 08:17:19.332';
SELECT YEAR(@SomeDate);
SELECT MONTH(@SomeDate);
SELECT DAY(@SomeDate);
YEAR
= 2019
MONTH
= 3
DAY
= 1
DATEPART()
SELECT
DATEPART(YEAR, @dt) AS TheYear;
DATENAME()
SELECT
DATENAME(MONTH, @dt) AS TheMonth;
DECLARE @SomeTime DATETIME2(7) = '1992-07-14 14:49:36.2294852';
SELECT DATEADD(DAY, 1, @SomeTime) AS NextDay, DATEADD(DAY, -1, @SomeTime) AS PriorDay;
SELECT DATEADD(HOUR, -3, DATEADD(DAY, -4, @SomeTime)) AS Minus4Days3Hours;
NextDay | PriorDay |
---|---|
1992-07-15 14:49:36.2294852 | 1992-07-13 14:49:36.2294852 |
Minus4Days3Hours |
---|
1992-07-10 11:49:36.2294852 |
DECLARE
@StartTime DATETIME2(7) = '2012-03-01 14:29:36',
@EndTime DATETIME2(7) = '2012-03-01 18:00:00';
SELECT
DATEDIFF(SECOND, @StartTime, @EndTime) AS SecondsElapsed,
DATEDIFF(MINUTE, @StartTime, @EndTime) AS MinutesElapsed,
DATEDIFF(HOUR, @StartTime, @EndTime) AS HoursElapsed;
SecondsElapsed | MinutesElapsed | HoursElapsed |
---|---|---|
12624 | 211 | 4 |
DECLARE @SomeTime DATETIME2(7) = '2017-05-12 16:25:16.2248991';
SELECT
DATEADD(DAY, DATEDIFF(DAY, 0, @SomeTime), 0) AS RoundedToDay,
DATEADD(HOUR, DATEDIFF(HOUR, 0, @SomeTime), 0) AS RoundedToHour,
DATEADD(MINUTE, DATEDIFF(MINUTE, 0, @SomeTime), 0) AS RoundedToMinute;
RoundedToDay RoundedToHour RoundedToMinute
2017-05-12 00:00:00 2017-05-12 16:00:00 2017-05-12 16:25:00
Time Series Analysis in SQL Server