记录学习记录学习!!!
前些日子,用hsql做分析时,因为要获取未来一段时间的数据,所以得获取当前日期。
一开始我用的是这个语句:select from_unixtime(unix_timestamp(),'yyyy-MM-dd'),unix_timestamp()是获取时间戳,然后再通过from_unixtime()对时间戳进行格式化,得到年月日的格式,但是用这种方法还需要将结果作为临时表存起来,再与我的数据表进行连接,才能筛选出未来一段时间的数据,不仅耗时大,而且语句冗余(特别是涉及到union all)
直到今天,我才想起来可以用到另一个函数来获取当前日期:current_date()
这样不仅解决代码冗余,而且运行速度也比from_unixtime(unix_timestamp(),'yyyy-MM-dd')快一点?反正不需要做表连接操作,整体的运行是快一点的。
顺便记录一下,获取当前日期:select current_date();
获取未来某一天日期date_add(日期,n(未来第几天))
获取明天日期:date_add(current_date(),1)
获取第七天日期:date_add(current_date(),6)
获取未来7天日期:between current_date() and date_add(current_date(),6)
获取过去日期:date_sub(日期,n(过去的第几天))
依次类推
查看hive函数:show functions
查看某个函数使用方法:desc function 函数名;