-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path117_add or substract dates (dateadd and datediff).sql
More file actions
116 lines (85 loc) · 2.62 KB
/
117_add or substract dates (dateadd and datediff).sql
File metadata and controls
116 lines (85 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
--create database functions;
use functions;
--ADD or SUBSTRACT DATE
--DATEADD Function
--SYNTAX --> DATEADD (datepart, number, date)
--POSIBLE DATEPARTS
/*
Year(yyyy, yy)
Quarter(qq, q)
Month(mm,m)
Dayofyear(dy,y)
Day(dd,d)
Week(wk,ww)
Weekday(dw,w)
Hour(hh)
Minute(mi,n)
Second(ss,s)
Millisecond(ms)
Microsecond(mcs)
Nanosecond(ns)
*/
--NUMBER
--It can be an integer value or an expression returning an int value to add to the datepart.
--It can be a positive or negative value.
--DATE
/*
Date
Datetime
Datetime2
datetimeoffset
smalldatetime
time
*/
declare @date date,
@datetime datetime,
@datetime2 datetime2,
@datetimeoffset datetimeoffset,
@smalldatetime smalldatetime,
@time time;
set @date = getdate();
set @datetime = getdate();
set @datetime2 = getdate();
set @datetimeoffset = getdate();
set @smalldatetime = getdate();
set @time = getdate();
select @date as [date],
@datetime as [datetime],
@datetime2 as [datetime2],
@datetimeoffset as [datetimeoffset],
@smalldatetime as [smalldatetime],
@time as [time];
--DATE Function
declare @adddatetime datetime;
set @adddatetime = getdate()
select DATEADD(hour,23,@adddatetime);
select DATEADD(minute,59,@adddatetime);
select DATEADD(second,59,@adddatetime);
select DATEADD(day,365,@adddatetime);
select DATEADD(month,13,@adddatetime);
select DATEADD(quarter,4,@adddatetime);
select DATEADD(week,5,@adddatetime);
select DATEADD(dayofyear,365,@adddatetime);
select DATEADD(weekday,31,@adddatetime);
--DATEDIFF Function
--Syntax:
--DATEDIFF ( datepart , startdate , enddate )
--Startdate and enddate can be in
--date
--datetime
--datetime2
--datetimeoffset
--smalldatatime
--time
select DATEDIFF(year,'2010-01-01','2035-01-01') as year_diff;
select DATEDIFF(HOUR,'07:00:00.000','23:00:00.000') AS TimeInHours
, DATEDIFF(MINUTE,'07:00:00.000','23:30:00.000') AS TimeInMinutes
--start and end date can be any expression or sub-query which return arguments of the required datatype
--(date, datetime, datetime2, datetimeoffset, smalldatetime, time)
--DATEDIFF_BIG function
--return big int value from the specified data part
--int data type support only 4 bytes (32 bits ---> -2,147,483,647 to 2,147,483,647)
--big int data type support 8 bytes (64 bits --> -9,223,372,036,854,775,807 to 9,223,372,036,854,775,807)
select datediff(millisecond, getdate(), getdate()+20);
select datediff(microsecond, getdate(), getdate()+20);
select datediff_big(microsecond, getdate(), getdate()+20) as microsecond_diff;