9
EXTRACT(field FROM source)
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*.
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*.
18
The following field names are available:
25
SELECT EXTRACT(DAY FROM TIMESTAMP '2011-02-16 20:38:40');
36
SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');
38
The year, divided by 10.
47
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
49
The day of the week (Sunday is 0, Saturday is 6)
58
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');
60
The day of the year (1 - 365/366)
69
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
71
The hour field (0 - 23)
80
SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');
82
The seconds field, including fractional parts, multiplied by 1 000 000; note that this includes full seconds
91
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');
93
The minutes field (0 - 59)
100
For timestamp values, the number of the month within the year (1 - 12).
101
For interval values, the number of months (0 - 11).
103
.. code-block:: mysql
105
SELECT EXTRACT(MONTH FROM TIMESTAMP '2010-12-29 08:45:27');
109
.. code-block:: mysql
111
SELECT EXTRACT(MONTH FROM INTERVAL '3 years 4 months');
115
.. code-block:: mysql
117
SELECT EXTRACT(MONTH FROM INTERVAL '3 years 13 months');
124
.. code-block:: mysql
126
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2010-12-29 08:45:27');
128
The quarter of the year (1 - 4) containing the date.
135
.. code-block:: mysql
137
SELECT EXTRACT(SECOND FROM TIMESTAMP '2010-12-29 08:45:27');
139
The seconds field, including fractional parts (0 - 59)
143
.. code-block:: mysql
145
SELECT EXTRACT(SECOND FROM TIME '08:15:22.5');
152
The time zone offset from UTC, measured in seconds.
157
Returns the week number that a day is in. Weeks are numbered according to ISO 8601:1988.
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.
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.
163
.. code-block:: mysql
165
SELECT EXTRACT(WEEK FROM TIMESTAMP '2010-01-25 12:44:06');
172
.. code-block:: mysql
174
SELECT EXTRACT(YEAR FROM TIMESTAMP '2009-02-16 20:38:40');
181
The valid field names for date_part are the same as for extract.
183
.. code-block:: mysql
185
SELECT date_part('day', TIMESTAMP '2010-07-16 10:12:05');
189
.. code-block:: mysql
191
SELECT date_part('hour', INTERVAL '5 hours 12 minutes');