~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/functions/extract_date_functions.rst

  • Committer: Lee Bieber
  • Date: 2011-02-23 05:05:43 UTC
  • mfrom: (2193.1.2 build)
  • Revision ID: kalebral@gmail.com-20110223050543-w0nhgf512s0137mm
Merge Andrew - 723389: ORDER BY on sys_replication_log table causes InnoDB crash
Merge Marisa - documentation updates

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
EXTRACT DATE FUNCTION
 
2
======================
 
3
 
 
4
**Syntax** ::
 
5
 
 
6
        EXTRACT(field FROM source)
 
7
 
 
8
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*. 
 
9
 
 
10
*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*. 
 
11
 
 
12
**Examples:**
 
13
 
 
14
The following field names are available:
 
15
 
 
16
**day**
 
17
 
 
18
.. code-block:: mysql
 
19
        
 
20
        SELECT EXTRACT(DAY FROM TIMESTAMP '2011-02-16 20:38:40');
 
21
 
 
22
Day of the month.
 
23
 
 
24
*Result: 16*
 
25
 
 
26
**decade**
 
27
 
 
28
.. code-block:: mysql
 
29
        
 
30
        SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');
 
31
 
 
32
The year, divided by 10.
 
33
 
 
34
*Result: 200*
 
35
 
 
36
**dow**
 
37
 
 
38
.. code-block:: mysql
 
39
        
 
40
        SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
 
41
 
 
42
The day of the week (Sunday is 0, Saturday is 6)
 
43
 
 
44
*Result: 5*
 
45
 
 
46
**doy**
 
47
 
 
48
.. code-block:: mysql
 
49
 
 
50
        SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');
 
51
 
 
52
The day of the year (1 - 365/366)
 
53
 
 
54
*Result: 47*
 
55
 
 
56
**hour**
 
57
 
 
58
.. code-block:: mysql
 
59
 
 
60
        SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
 
61
 
 
62
The hour field (0 - 23)
 
63
 
 
64
*Result: 20*
 
65
 
 
66
**microseconds**
 
67
 
 
68
.. code-block:: mysql
 
69
 
 
70
        SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');
 
71
 
 
72
The seconds field, including fractional parts, multiplied by 1 000 000; note that this includes full seconds
 
73
 
 
74
*Result: 28500000*
 
75
 
 
76
**minute**
 
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
 
 
86
**month**
 
87
 
 
88
For timestamp values, the number of the month within the year (1 - 12). 
 
89
For interval values, the number of months (0 - 11).
 
90
 
 
91
.. code-block:: mysql
 
92
 
 
93
        SELECT EXTRACT(MONTH FROM TIMESTAMP '2010-12-29 08:45:27');
 
94
 
 
95
*Result: 12*
 
96
 
 
97
.. code-block:: mysql
 
98
 
 
99
        SELECT EXTRACT(MONTH FROM INTERVAL '3 years 4 months');
 
100
 
 
101
*Result: 4*
 
102
 
 
103
.. code-block:: mysql
 
104
 
 
105
        SELECT EXTRACT(MONTH FROM INTERVAL '3 years 13 months');
 
106
 
 
107
*Result: 1*
 
108
 
 
109
**quarter**
 
110
 
 
111
.. code-block:: mysql
 
112
 
 
113
        SELECT EXTRACT(QUARTER FROM TIMESTAMP '2010-12-29 08:45:27');
 
114
 
 
115
The quarter of the year (1 - 4) containing the date.
 
116
        
 
117
*Result: 4*
 
118
 
 
119
**second**
 
120
 
 
121
.. code-block:: mysql
 
122
 
 
123
        SELECT EXTRACT(SECOND FROM TIMESTAMP '2010-12-29 08:45:27');
 
124
 
 
125
The seconds field, including fractional parts (0 - 59)
 
126
        
 
127
*Result: 27*
 
128
 
 
129
.. code-block:: mysql
 
130
 
 
131
        SELECT EXTRACT(SECOND FROM TIME '08:15:22.5');
 
132
 
 
133
*Result: 22.5*
 
134
 
 
135
**timezone**
 
136
 
 
137
The time zone offset from UTC, measured in seconds.
 
138
 
 
139
**week**
 
140
 
 
141
Returns the week number that a day is in. Weeks are numbered according to ISO 8601:1988.
 
142
 
 
143
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.
 
144
 
 
145
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.
 
146
 
 
147
.. code-block:: mysql
 
148
 
 
149
        SELECT EXTRACT(WEEK FROM TIMESTAMP '2010-01-25 12:44:06');
 
150
 
 
151
*Result: 4*
 
152
 
 
153
**year**
 
154
 
 
155
.. code-block:: mysql
 
156
 
 
157
        SELECT EXTRACT(YEAR FROM TIMESTAMP '2009-02-16 20:38:40');
 
158
 
 
159
*Result: 2009*
 
160
 
 
161
The valid field names for date_part are the same as for extract.
 
162
 
 
163
.. code-block:: mysql
 
164
 
 
165
        SELECT date_part('day', TIMESTAMP '2010-07-16 10:12:05');
 
166
 
 
167
*Result: 16*
 
168
 
 
169
.. code-block:: mysql
 
170
 
 
171
        SELECT date_part('hour', INTERVAL '5 hours 12 minutes');
 
172
 
 
173
*Result: 4*