В настоящее время я занят некоторыми SQL (как в Netezza, так и в HiveQL). Наша компания часто использует числовые поля для дат (например, 20150602 для даты, 20160400 для месяца).
Мне нужно добавить 6 месяцев к одной из этих дат, и обычно я делаю:
cast(to_char(add_months(to_date(A.date,'yyyyMMdd'),6),'yyyyMMdd') as int)
Хотя это не красиво, это работает, и я не знаю более короткого или лучшего способа. Мои основные проблемы заключаются в том, что это большая таблица (12 миллиардов строк), и преобразование даты не совсем быстрое, а запрос, над которым я работаю, убивается из-за слишком долгой работы. Есть ли лучший способ сделать это?
SELECT DATEADD(M,6,'20160602')
результат2016-12-02 00:00:00.000
- person Jacob H   schedule 31.08.2017