@@ -154,11 +154,6 @@ struct DateTrunc {
154154};
155155
156156// DATE specialisations
157- template <>
158- date_t DateTrunc::MillenniumOperator::Operation (timestamp_t input) {
159- return MillenniumOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
160- }
161-
162157template <>
163158timestamp_t DateTrunc::MillenniumOperator::Operation (date_t input) {
164159 return Timestamp::FromDatetime (MillenniumOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -169,11 +164,6 @@ timestamp_t DateTrunc::MillenniumOperator::Operation(timestamp_t input) {
169164 return MillenniumOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
170165}
171166
172- template <>
173- date_t DateTrunc::CenturyOperator::Operation (timestamp_t input) {
174- return CenturyOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
175- }
176-
177167template <>
178168timestamp_t DateTrunc::CenturyOperator::Operation (date_t input) {
179169 return Timestamp::FromDatetime (CenturyOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -184,11 +174,6 @@ timestamp_t DateTrunc::CenturyOperator::Operation(timestamp_t input) {
184174 return CenturyOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
185175}
186176
187- template <>
188- date_t DateTrunc::DecadeOperator::Operation (timestamp_t input) {
189- return DecadeOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
190- }
191-
192177template <>
193178timestamp_t DateTrunc::DecadeOperator::Operation (date_t input) {
194179 return Timestamp::FromDatetime (DecadeOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -199,11 +184,6 @@ timestamp_t DateTrunc::DecadeOperator::Operation(timestamp_t input) {
199184 return DecadeOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
200185}
201186
202- template <>
203- date_t DateTrunc::YearOperator::Operation (timestamp_t input) {
204- return YearOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
205- }
206-
207187template <>
208188timestamp_t DateTrunc::YearOperator::Operation (date_t input) {
209189 return Timestamp::FromDatetime (YearOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -214,11 +194,6 @@ timestamp_t DateTrunc::YearOperator::Operation(timestamp_t input) {
214194 return YearOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
215195}
216196
217- template <>
218- date_t DateTrunc::QuarterOperator::Operation (timestamp_t input) {
219- return QuarterOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
220- }
221-
222197template <>
223198timestamp_t DateTrunc::QuarterOperator::Operation (date_t input) {
224199 return Timestamp::FromDatetime (QuarterOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -229,11 +204,6 @@ timestamp_t DateTrunc::QuarterOperator::Operation(timestamp_t input) {
229204 return QuarterOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
230205}
231206
232- template <>
233- date_t DateTrunc::MonthOperator::Operation (timestamp_t input) {
234- return MonthOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
235- }
236-
237207template <>
238208timestamp_t DateTrunc::MonthOperator::Operation (date_t input) {
239209 return Timestamp::FromDatetime (MonthOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -244,11 +214,6 @@ timestamp_t DateTrunc::MonthOperator::Operation(timestamp_t input) {
244214 return MonthOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
245215}
246216
247- template <>
248- date_t DateTrunc::WeekOperator::Operation (timestamp_t input) {
249- return WeekOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
250- }
251-
252217template <>
253218timestamp_t DateTrunc::WeekOperator::Operation (date_t input) {
254219 return Timestamp::FromDatetime (WeekOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -259,11 +224,6 @@ timestamp_t DateTrunc::WeekOperator::Operation(timestamp_t input) {
259224 return WeekOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
260225}
261226
262- template <>
263- date_t DateTrunc::ISOYearOperator::Operation (timestamp_t input) {
264- return ISOYearOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
265- }
266-
267227template <>
268228timestamp_t DateTrunc::ISOYearOperator::Operation (date_t input) {
269229 return Timestamp::FromDatetime (ISOYearOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -274,11 +234,6 @@ timestamp_t DateTrunc::ISOYearOperator::Operation(timestamp_t input) {
274234 return ISOYearOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
275235}
276236
277- template <>
278- date_t DateTrunc::DayOperator::Operation (timestamp_t input) {
279- return DayOperator::Operation<date_t , date_t >(Timestamp::GetDate (input));
280- }
281-
282237template <>
283238timestamp_t DateTrunc::DayOperator::Operation (date_t input) {
284239 return Timestamp::FromDatetime (DayOperator::Operation<date_t , date_t >(input), dtime_t (0 ));
@@ -289,81 +244,31 @@ timestamp_t DateTrunc::DayOperator::Operation(timestamp_t input) {
289244 return DayOperator::Operation<date_t , timestamp_t >(Timestamp::GetDate (input));
290245}
291246
292- template <>
293- date_t DateTrunc::HourOperator::Operation (date_t input) {
294- return DayOperator::Operation<date_t , date_t >(input);
295- }
296-
297247template <>
298248timestamp_t DateTrunc::HourOperator::Operation (date_t input) {
299249 return DayOperator::Operation<date_t , timestamp_t >(input);
300250}
301251
302- template <>
303- date_t DateTrunc::HourOperator::Operation (timestamp_t input) {
304- return Timestamp::GetDate (HourOperator::Operation<timestamp_t , timestamp_t >(input));
305- }
306-
307- template <>
308- date_t DateTrunc::MinuteOperator::Operation (date_t input) {
309- return DayOperator::Operation<date_t , date_t >(input);
310- }
311-
312252template <>
313253timestamp_t DateTrunc::MinuteOperator::Operation (date_t input) {
314254 return DayOperator::Operation<date_t , timestamp_t >(input);
315255}
316256
317- template <>
318- date_t DateTrunc::MinuteOperator::Operation (timestamp_t input) {
319- return Timestamp::GetDate (HourOperator::Operation<timestamp_t , timestamp_t >(input));
320- }
321-
322- template <>
323- date_t DateTrunc::SecondOperator::Operation (date_t input) {
324- return DayOperator::Operation<date_t , date_t >(input);
325- }
326-
327257template <>
328258timestamp_t DateTrunc::SecondOperator::Operation (date_t input) {
329259 return DayOperator::Operation<date_t , timestamp_t >(input);
330260}
331261
332- template <>
333- date_t DateTrunc::SecondOperator::Operation (timestamp_t input) {
334- return Timestamp::GetDate (DayOperator::Operation<timestamp_t , timestamp_t >(input));
335- }
336-
337- template <>
338- date_t DateTrunc::MillisecondOperator::Operation (date_t input) {
339- return DayOperator::Operation<date_t , date_t >(input);
340- }
341-
342262template <>
343263timestamp_t DateTrunc::MillisecondOperator::Operation (date_t input) {
344264 return DayOperator::Operation<date_t , timestamp_t >(input);
345265}
346266
347- template <>
348- date_t DateTrunc::MillisecondOperator::Operation (timestamp_t input) {
349- return Timestamp::GetDate (MillisecondOperator::Operation<timestamp_t , timestamp_t >(input));
350- }
351-
352- template <>
353- date_t DateTrunc::MicrosecondOperator::Operation (date_t input) {
354- return DayOperator::Operation<date_t , date_t >(input);
355- }
356-
357267template <>
358268timestamp_t DateTrunc::MicrosecondOperator::Operation (date_t input) {
359269 return DayOperator::Operation<date_t , timestamp_t >(input);
360270}
361271
362- template <>
363- date_t DateTrunc::MicrosecondOperator::Operation (timestamp_t input) {
364- return Timestamp::GetDate (MicrosecondOperator::Operation<timestamp_t , timestamp_t >(input));
365- }
366-
367272// INTERVAL specialisations
368273template <>
369274interval_t DateTrunc::MillenniumOperator::Operation (interval_t input) {
0 commit comments