~drizzle-trunk/drizzle/development

1994.4.87 by Marisa Plumb
adding to date functions
1
EXTRACT DATE FUNCTION
2
======================
3
2194.5.3 by Andrew Hutchings
Markup fixes
4
Syntax
5
------
6
7
.. code-block:: mysql
1994.4.87 by Marisa Plumb
adding to date functions
8
9
	EXTRACT(field FROM source)
10
11
The EXTRACT function retrieves subfields such as day or hour from date/time values. The source value has to be a value expression of type *timestamp*, *time*, *date*, or *interval*. 
12
13
*Field* is an identifier or string that identifies the field to extract from the source value. The extract function returns values of type *double precision*. 
14
2194.5.3 by Andrew Hutchings
Markup fixes
15
Examples
16
--------
1994.4.87 by Marisa Plumb
adding to date functions
17
18
The following field names are available:
19
2194.5.3 by Andrew Hutchings
Markup fixes
20
day
21
^^^
1994.4.87 by Marisa Plumb
adding to date functions
22
23
.. code-block:: mysql
24
	
1994.4.93 by Marisa Plumb
additions, edits
25
	SELECT EXTRACT(DAY FROM TIMESTAMP '2011-02-16 20:38:40');
1994.4.87 by Marisa Plumb
adding to date functions
26
27
Day of the month.
28
29
*Result: 16*
30
2194.5.3 by Andrew Hutchings
Markup fixes
31
decade
32
^^^^^^
1994.4.87 by Marisa Plumb
adding to date functions
33
34
.. code-block:: mysql
35
	
36
	SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');
37
38
The year, divided by 10.
39
40
*Result: 200*
41
2194.5.3 by Andrew Hutchings
Markup fixes
42
dow
43
^^^
1994.4.87 by Marisa Plumb
adding to date functions
44
45
.. code-block:: mysql
46
	
47
	SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
48
49
The day of the week (Sunday is 0, Saturday is 6)
50
51
*Result: 5*
52
2194.5.3 by Andrew Hutchings
Markup fixes
53
doy
54
^^^
1994.4.87 by Marisa Plumb
adding to date functions
55
56
.. code-block:: mysql
57
58
	SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');
59
60
The day of the year (1 - 365/366)
61
62
*Result: 47*
63
2194.5.3 by Andrew Hutchings
Markup fixes
64
hour
65
^^^^
1994.4.87 by Marisa Plumb
adding to date functions
66
67
.. code-block:: mysql
68
69
	SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
70
71
The hour field (0 - 23)
72
73
*Result: 20*
74
2194.5.3 by Andrew Hutchings
Markup fixes
75
minute
76
^^^^^^
1994.4.87 by Marisa Plumb
adding to date functions
77
78
.. code-block:: mysql
79
80
	SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');
81
82
The minutes field (0 - 59)	
83
84
*Result: 38*
85
2194.5.3 by Andrew Hutchings
Markup fixes
86
month
87
^^^^^
1994.4.87 by Marisa Plumb
adding to date functions
88
89
For timestamp values, the number of the month within the year (1 - 12). 
90
For interval values, the number of months (0 - 11).
91
92
.. code-block:: mysql
93
94
	SELECT EXTRACT(MONTH FROM TIMESTAMP '2010-12-29 08:45:27');
95
96
*Result: 12*
97
98
.. code-block:: mysql
99
100
	SELECT EXTRACT(MONTH FROM INTERVAL '3 years 4 months');
101
102
*Result: 4*
103
104
.. code-block:: mysql
105
106
	SELECT EXTRACT(MONTH FROM INTERVAL '3 years 13 months');
107
108
*Result: 1*
109
2194.5.3 by Andrew Hutchings
Markup fixes
110
quarter
111
^^^^^^^
1994.4.87 by Marisa Plumb
adding to date functions
112
113
.. code-block:: mysql
114
115
	SELECT EXTRACT(QUARTER FROM TIMESTAMP '2010-12-29 08:45:27');
116
117
The quarter of the year (1 - 4) containing the date.
118
	
119
*Result: 4*
120
2194.5.3 by Andrew Hutchings
Markup fixes
121
second
122
^^^^^^
1994.4.87 by Marisa Plumb
adding to date functions
123
124
.. code-block:: mysql
125
126
	SELECT EXTRACT(SECOND FROM TIMESTAMP '2010-12-29 08:45:27');
127
128
The seconds field, including fractional parts (0 - 59)
129
	
130
*Result: 27*
131
2194.5.3 by Andrew Hutchings
Markup fixes
132
timezone
133
^^^^^^^^
1994.4.87 by Marisa Plumb
adding to date functions
134
135
The time zone offset from UTC, measured in seconds.
136
2194.5.3 by Andrew Hutchings
Markup fixes
137
week
138
^^^^
1994.4.87 by Marisa Plumb
adding to date functions
139
140
Returns the week number that a day is in. Weeks are numbered according to ISO 8601:1988.
141
142
ISO 8601:1988 means that if the week containing January 1 has four or more days in the new year, then it is week 1; otherwise it is the last week of the previous year, and the next week is week 1. The ISO-8601 week starts on Monday.
143
144
It's possible for early January dates to be part of the 52nd or 53rd week of the previous year. For example, 2011-01-01 was part of the 52nd week of year 2010.
145
146
.. code-block:: mysql
147
148
	SELECT EXTRACT(WEEK FROM TIMESTAMP '2010-01-25 12:44:06');
149
150
*Result: 4*
151
2194.5.3 by Andrew Hutchings
Markup fixes
152
year
153
^^^^
1994.4.87 by Marisa Plumb
adding to date functions
154
155
.. code-block:: mysql
156
157
	SELECT EXTRACT(YEAR FROM TIMESTAMP '2009-02-16 20:38:40');
158
159
*Result: 2009*
160