@@ -74,43 +74,141 @@ SELECT '1582-10-10'::TIMESTAMPTZ AS ts;
74
74
# Same date, multiple TZ names
75
75
#
76
76
77
+ # We can't use the offsets in pg_timezone_names()
78
+ # because they change with the date
79
+ # So hard code the original values
80
+ # The important point is that these cover all the GMT offsets.
77
81
statement ok
78
82
CREATE TABLE zones AS (
79
- SELECT median(name) as tz_name
80
- FROM pg_timezone_names()
81
- GROUP BY utc_offset
82
- ORDER BY utc_offset
83
+ FROM (VALUES
84
+ ('Etc/GMT-14'),
85
+ ('NZ-CHAT'),
86
+ ('Pacific/Auckland'),
87
+ ('Pacific/Enderbury'),
88
+ ('Australia/LHI'),
89
+ ('Australia/Melbourne'),
90
+ ('Pacific/Efate'),
91
+ ('Australia/Darwin'),
92
+ ('Asia/Tokyo'),
93
+ ('Australia/Eucla'),
94
+ ('Asia/Shanghai'),
95
+ ('Asia/Novosibirsk'),
96
+ ('Asia/Yangon'),
97
+ ('Asia/Omsk'),
98
+ ('Asia/Kathmandu'),
99
+ ('Asia/Colombo'),
100
+ ('Asia/Oral'),
101
+ ('Asia/Kabul'),
102
+ ('Europe/Astrakhan'),
103
+ ('Asia/Tehran'),
104
+ ('Asia/Kuwait'),
105
+ ('Asia/Nicosia'),
106
+ ('Europe/Budapest'),
107
+ ('Etc/GMT-0'),
108
+ ('Atlantic/Azores'),
109
+ ('America/Cayenne'),
110
+ ('America/Nuuk'),
111
+ ('CNT'),
112
+ ('America/Martinique'),
113
+ ('America/Louisville'),
114
+ ('America/Rainy_River'),
115
+ ('America/Shiprock'),
116
+ ('Mexico/BajaNorte'),
117
+ ('America/Sitka'),
118
+ ('Pacific/Marquesas'),
119
+ ('Pacific/Johnston'),
120
+ ('Pacific/Niue'),
121
+ ('Etc/GMT+12'),
122
+ ) tbl(tz_name)
83
123
);
84
124
85
125
statement ok
86
126
CREATE TABLE abbrevs AS (
87
- SELECT median(abbrev) as tz_name
88
- FROM pg_timezone_names()
89
- GROUP BY utc_offset
90
- ORDER BY utc_offset
127
+ FROM (VALUES
128
+ ('Etc/GMT-14'),
129
+ ('NZ-CHAT'),
130
+ ('NZ'),
131
+ ('Pacific/Enderbury'),
132
+ ('Australia/Hobart'),
133
+ ('Australia/LHI'),
134
+ ('Pacific/Efate'),
135
+ ('Australia/Adelaide'),
136
+ ('Etc/GMT-9'),
137
+ ('Australia/Eucla'),
138
+ ('CTT'),
139
+ ('Asia/Phnom_Penh'),
140
+ ('Asia/Yangon'),
141
+ ('Asia/Thimbu'),
142
+ ('Asia/Kathmandu'),
143
+ ('IST'),
144
+ ('Asia/Qyzylorda'),
145
+ ('Asia/Kabul'),
146
+ ('Europe/Samara'),
147
+ ('Iran'),
148
+ ('EAT'),
149
+ ('CAT'),
150
+ ('Europe/Bratislava'),
151
+ ('GMT'),
152
+ ('Atlantic/Azores'),
153
+ ('America/Cayenne'),
154
+ ('America/Nuuk'),
155
+ ('CNT'),
156
+ ('PRT'),
157
+ ('America/Panama'),
158
+ ('America/Rankin_Inlet'),
159
+ ('Canada/Yukon'),
160
+ ('PST'),
161
+ ('America/Nome'),
162
+ ('Pacific/Marquesas'),
163
+ ('Pacific/Johnston'),
164
+ ('Pacific/Niue'),
165
+ ('Etc/GMT+12'),
166
+ ) tbl(tz_name)
91
167
);
92
168
93
169
statement ok
94
- CREATE TABLE offsets AS (
95
- SELECT
96
- CASE WHEN EXTRACT(MINUTE FROM utc_offset) <> 0
97
- THEN
98
- CASE WHEN utc_offset < INTERVAL 0 SECOND
99
- THEN LEFT(utc_offset, 6)
100
- ELSE '+' || LEFT(utc_offset, 5)
101
- END
102
- ELSE
103
- CASE WHEN utc_offset < INTERVAL 0 SECOND
104
- THEN LEFT(utc_offset, 3)
105
- ELSE '+' || LEFT(utc_offset, 2)
106
- END
107
- END AS utc_offset
108
- FROM (
109
- SELECT DISTINCT utc_offset
110
- FROM pg_timezone_names()
111
- ORDER BY ALL
112
- ) z
113
- );
170
+ CREATE TABLE offsets AS
171
+ FROM (VALUES
172
+ ('+14'),
173
+ ('+13'),
174
+ ('+12:45'),
175
+ ('+12'),
176
+ ('+11'),
177
+ ('+10:30'),
178
+ ('+10'),
179
+ ('+09:30'),
180
+ ('+09'),
181
+ ('+08:45'),
182
+ ('+08'),
183
+ ('+07'),
184
+ ('+06:30'),
185
+ ('+06'),
186
+ ('+05:45'),
187
+ ('+05:30'),
188
+ ('+05'),
189
+ ('+04:30'),
190
+ ('+04'),
191
+ ('+03:30'),
192
+ ('+03'),
193
+ ('+02'),
194
+ ('+01'),
195
+ ('+00'),
196
+ ('-01'),
197
+ ('-02'),
198
+ ('-03'),
199
+ ('-03:30'),
200
+ ('-04'),
201
+ ('-05'),
202
+ ('-06'),
203
+ ('-07'),
204
+ ('-08'),
205
+ ('-09'),
206
+ ('-09:30'),
207
+ ('-10'),
208
+ ('-11'),
209
+ ('-12'),
210
+ ) tbl(utc_offset)
211
+ ;
114
212
115
213
foreach func strptime try_strptime
116
214
0 commit comments