一、pgsql日期加减日、月、年
1、pgsql查询某日期加5天的日期
select DATE_TRUNC('day',create_time+INTERVAL '5 day') from table
2、pgsql查询某日期减5天的日期
select DATE_TRUNC('day',create_time - INTERVAL '5 day') from table
3、pgsql查询某日期加5个月的日期
select DATE_TRUNC('day',create_time + INTERVAL '5 month') from table
4、pgsql查询某日期减5个月的日期
select DATE_TRUNC('day',create_time - INTERVAL '5 month') from table
5、pgsql查询某日期加5年的日期
select DATE_TRUNC('day',create_time + INTERVAL '5 year') from table
6、pgsql查询某日期减5年的日期
select DATE_TRUNC('day',create_time - INTERVAL '5 year') from table
二、mybatis动态传参pgsql日期加减日、月、年的数量
pgsql 加减日月年的方法变量是字符串的,比如年是 '5 year'。
这时候使用mybatis,怎么把数字5传入呢?
直接使用 '#{year} year' 是不对的,在字符串里边#{year}不被识别。
使用 #{year} 'year' 也是不对的,报错。
将参数year 直接赋值 '5 year' ,sql写为 INTERVAL #{year} ,应该可以。
但我没试过,这种写法不符合原则,感觉不对劲,不舒服。
最后,找到一种令人舒服的写法:
select DATE_TRUNC('day',create_time - INTERVAL '1 year' * #{year}) from table
这样,只需要把数字5作为参数值传入就可以了。