Oracle和PG语法差异

这篇博客探讨了Oracle数据库与PostgreSQL在使用now()函数及时间间隔操作上的语法差异,包括如何表示当前时间与特定时间间隔的减法运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、jar包/maven依赖的更换
2、driverClassName等信息的更换
3、字段类型问题
5、序列问题
	oracle获取序列: my_sequece.nextval
	postgre获取序列: nextval('my_sequece')
6、sysdate替换方案
差异OraclePG
当前日期 时间sysdatenow() current_timestamp
当前日期trunc(sysdate)now() :: date
?分钟前sysdate - ?/24/60now()- ‘2 min’::interval
?天前sysdate - ?now()- ‘2 day’::interval
几天前trunc(sysdate-1)current_date - ‘1 day’::interval
几月前add_month()current_date + interval ‘-1 month’

now() - ( || ‘min’)::interval
now() - (? || ‘day’)::interval

7、NVL函数替换方案
	oracle中的NVL(arg1, arg2)用来设置默认值,arg1为空就设置为arg2。
	postgre中可以用coalesce(arg1, arg2)实现相同效果。
8、rownum实现方法或者pagehelper的实现
	oracle中用rownum进行分页
	postgre中用limit进行分页
9、数字类型字段模糊查询问题
	非String类型的字段要进行模糊查询,需要先将数据库字段类型转成varchar,如下:
		and cast(user_phone as varchar) LIKE ?
10、blob类型的问题
	oracle中用blob类型可以存储文件,在java中也用blob类型对应。postgre与之对应的是bytea,在java中用byte[]数组对应就可以了。
11、to_date函数的问题:
	postgre中to_date函数转出来的是不带时分秒的时间,如果想要带时分秒的,需要用to_timestamp。
12、存储过程创建的问题
13、pg_cron定时任务插件
	    PostgreSQL 实现定时任务
14、cast函数
15、批量插入 select 1 from dual
16、merge into 
17、cast ('' as float)  转数字
18、创建自增主键 serial 
19、to_char(,'fm999990') 转字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值