两日期字符串间的月数差:
months_between(from_unixtime(unix_timestamp() ,'yyyy-MM-dd'), a.register_date)
前一天日期的字符串
select FROM_UNIXTIME(UNIX_TIMESTAMP()-86400, 'yyyyMMdd')
前一天日期的日期
select CAST(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()-86400))as date)
调用add_months函数,负数代表往历史方向减月份, 正数代表往未来方向加月份。
select add_months(from_unixtime(unix_timestamp('201910', 'yyyyMM'), 'yyyy-MM-dd HH:mm:ss'), -6) from dual;
--返回结果:2019-04-01
当前月
SELECT date_format(CURRENT_DATE,'yyyyMM')
SELECT date_format(add_months(CURRENT_DATE,0),'yyyyMM')
前一月
SELECT date_format(add_months(CURRENT_DATE,-1),'yyyyMM')
日期与字符串的比较
from_unixtime(unix_timestamp(end_dt),'yyyyMMdd')>=20200801 and from_unixtime(unix_timestamp(end_dt),'yyyyMMdd')<=20200831;
日期转字符串
substr(CAST(start_time as string),0,10)
--west