PostgreSQL uses an internal heuristic parser for all date/time support. Dates and times are input as strings, and are broken up into distinct fields with a preliminary determination of what kind of information may be in the field. Each field is interpreted and either assigned a numeric value, ignored, or rejected. The parser contains internal lookup tables for all textual fields, including months, days of the week, and time zones.
This appendix includes information on the content of these lookup tables and describes the steps used by the parser to decode dates and times.
Table A-1. Month Abbreviations
Month | Abbreviations |
---|---|
April | Apr |
August | Aug |
December | Dec |
February | Feb |
January | Jan |
July | Jul |
June | Jun |
March | Mar |
November | Nov |
October | Oct |
September | Sep, Sept |
Note: The month May has no explicit abbreviation, for obvious reasons.
Table A-2. Day of the Week Abbreviations
Day | Abbreviation |
---|---|
Sunday | Sun |
Monday | Mon |
Tuesday | Tue, Tues |
Wednesday | Wed, Weds |
Thursday | Thu, Thur, Thurs |
Friday | Fri |
Saturday | Sat |
Table A-3. PostgreSQL Field Modifiers
Identifier | Description |
---|---|
ABSTIME | Keyword ignored |
AM | Time is before 12:00 |
AT | Keyword ignored |
JULIAN, JD, J | Next field is Julian Day |
ON | Keyword ignored |
PM | Time is on or after after 12:00 |
T | Next field is time |
The keyword ABSTIME is ignored for historical reasons; in very old releases of PostgreSQL invalid ABSTIME fields were emitted as "Invalid Abstime". This is no longer the case however and this keyword will likely be dropped in a future release.