Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 蜂巢:从时间框架中减去月份_Sql_Hive_Hiveql - Fatal编程技术网

Sql 蜂巢:从时间框架中减去月份

Sql 蜂巢:从时间框架中减去月份,sql,hive,hiveql,Sql,Hive,Hiveql,我的时间框架为2017-2-1,格式为yyyy-m-d。我需要在where声明中回顾12个月。因此,答案应该是:2016-2-1; 我试过了 其中,上一个月的日期=添加2017-2-1’,-12 但是,看起来,我得到的是空输出。然而,我确实有关于这方面的数据 previous_date= '2016-2-1' 有没有办法通过不使用加法月数来减去某个月数?或者,我在使用add_语句时是否遗漏了什么? 我不想减去365天。因为,这可能会给我错误的闰年输出 这是因为在应用add months之后,您

我的时间框架为2017-2-1,格式为yyyy-m-d。我需要在where声明中回顾12个月。因此,答案应该是:2016-2-1; 我试过了

其中,上一个月的日期=添加2017-2-1’,-12

但是,看起来,我得到的是空输出。然而,我确实有关于这方面的数据

previous_date= '2016-2-1'
有没有办法通过不使用加法月数来减去某个月数?或者,我在使用add_语句时是否遗漏了什么?
我不想减去365天。因为,这可能会给我错误的闰年输出

这是因为在应用add months之后,您将在yyyy-MM-dd中获得一个字符串。从Hive 1.2开始,您可以像这样使用日期\格式的自定义项

select date_format(add_months('2017-2-1', -12), 'yyyy-M-d');
所以你的where子句应该是这样的

where previous_date= date_format(add_months('2017-2-1', -12), 'yyyy-M-d')

我怀疑您正在将日期存储为字符串。如果是,则使用YYYY-MM-DD格式。改为使用“2017-02-01”中的-12。可以识别的字符串格式是yyyy MM ddIt,应该可以工作。向我们展示一些示例数据及其数据类型。