~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/functions/extract_date_functions.rst

Does not work (compile issue in plugin).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
EXTRACT DATE FUNCTION
2
 
======================
3
 
 
4
 
Syntax
5
 
------
6
 
 
7
 
.. code-block:: mysql
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
 
 
15
 
Examples
16
 
--------
17
 
 
18
 
The following field names are available:
19
 
 
20
 
day
21
 
^^^
22
 
 
23
 
.. code-block:: mysql
24
 
        
25
 
        SELECT EXTRACT(DAY FROM TIMESTAMP '2011-02-16 20:38:40');
26
 
 
27
 
Day of the month.
28
 
 
29
 
*Result: 16*
30
 
 
31
 
decade
32
 
^^^^^^
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
 
 
42
 
dow
43
 
^^^
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
 
 
53
 
doy
54
 
^^^
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
 
 
64
 
hour
65
 
^^^^
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
 
 
75
 
microseconds
76
 
^^^^^^^^^^^^
77
 
 
78
 
.. code-block:: mysql
79
 
 
80
 
        SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');
81
 
 
82
 
The seconds field, including fractional parts, multiplied by 1 000 000; note that this includes full seconds
83
 
 
84
 
*Result: 28500000*
85
 
 
86
 
minute
87
 
^^^^^^
88
 
 
89
 
.. code-block:: mysql
90
 
 
91
 
        SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');
92
 
 
93
 
The minutes field (0 - 59)      
94
 
 
95
 
*Result: 38*
96
 
 
97
 
month
98
 
^^^^^
99
 
 
100
 
For timestamp values, the number of the month within the year (1 - 12). 
101
 
For interval values, the number of months (0 - 11).
102
 
 
103
 
.. code-block:: mysql
104
 
 
105
 
        SELECT EXTRACT(MONTH FROM TIMESTAMP '2010-12-29 08:45:27');
106
 
 
107
 
*Result: 12*
108
 
 
109
 
.. code-block:: mysql
110
 
 
111
 
        SELECT EXTRACT(MONTH FROM INTERVAL '3 years 4 months');
112
 
 
113
 
*Result: 4*
114
 
 
115
 
.. code-block:: mysql
116
 
 
117
 
        SELECT EXTRACT(MONTH FROM INTERVAL '3 years 13 months');
118
 
 
119
 
*Result: 1*
120
 
 
121
 
quarter
122
 
^^^^^^^
123
 
 
124
 
.. code-block:: mysql
125
 
 
126
 
        SELECT EXTRACT(QUARTER FROM TIMESTAMP '2010-12-29 08:45:27');
127
 
 
128
 
The quarter of the year (1 - 4) containing the date.
129
 
        
130
 
*Result: 4*
131
 
 
132
 
second
133
 
^^^^^^
134
 
 
135
 
.. code-block:: mysql
136
 
 
137
 
        SELECT EXTRACT(SECOND FROM TIMESTAMP '2010-12-29 08:45:27');
138
 
 
139
 
The seconds field, including fractional parts (0 - 59)
140
 
        
141
 
*Result: 27*
142
 
 
143
 
.. code-block:: mysql
144
 
 
145
 
        SELECT EXTRACT(SECOND FROM TIME '08:15:22.5');
146
 
 
147
 
*Result: 22.5*
148
 
 
149
 
timezone
150
 
^^^^^^^^
151
 
 
152
 
The time zone offset from UTC, measured in seconds.
153
 
 
154
 
week
155
 
^^^^
156
 
 
157
 
Returns the week number that a day is in. Weeks are numbered according to ISO 8601:1988.
158
 
 
159
 
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.
160
 
 
161
 
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.
162
 
 
163
 
.. code-block:: mysql
164
 
 
165
 
        SELECT EXTRACT(WEEK FROM TIMESTAMP '2010-01-25 12:44:06');
166
 
 
167
 
*Result: 4*
168
 
 
169
 
year
170
 
^^^^
171
 
 
172
 
.. code-block:: mysql
173
 
 
174
 
        SELECT EXTRACT(YEAR FROM TIMESTAMP '2009-02-16 20:38:40');
175
 
 
176
 
*Result: 2009*
177
 
 
178
 
date_part
179
 
^^^^^^^^^
180
 
 
181
 
The valid field names for date_part are the same as for extract.
182
 
 
183
 
.. code-block:: mysql
184
 
 
185
 
        SELECT date_part('day', TIMESTAMP '2010-07-16 10:12:05');
186
 
 
187
 
*Result: 16*
188
 
 
189
 
.. code-block:: mysql
190
 
 
191
 
        SELECT date_part('hour', INTERVAL '5 hours 12 minutes');
192
 
 
193
 
*Result: 4*