PostgreSQL区别于MySQL
1.spring.datasource.validationQuery:
MySQL:SELECT 1 FROM DUAL
PostgreSQL:SELECT 1
当然,MySQL不要求强制使用FROM DUAL,可以省略:
也可以简写成 select 1
注意:在oracle中不能省略 from dual
2.分页查询:
MySQL:可以使用 "limit 0, 10"、"limit 10 offset 0"和"limit 10"
PostgreSQL:不能用 "limit 0, 10";可以用 "limit 10 offset 0"和"limit 10",不然会报数据库语法错误!
3.时间戳问题:
MySQL | PostgreSQL | |
获取当前时间 |
select now(6); 查询结果:2022-05-03 16:18:48.005696 // 等价于 select CURRENT_TIMESTAMP(6) // 通过对now传参数6,保留到小数点后第6位 |
select now() at time zone 'PRC'; 查询结果:2022-05-03 08:53:25.768331+00 // select now() 等价于 select CURRENT_TIMESTAMP // Pg默认时间比中国时区晚8小时,所以加 at time zone 'PRC'; Pg中now函数不接受参数。默认保留6位小数 |
获取当前时间戳 |
select UNIX_TIMESTAMP(NOW(3)); 查询结果:1651566325.050 |
SELECT extract(epoch from now()); 查询结果:1651568430.366578 // 使用epoch from后自动获取系统的当前时间,无需at time zone 'PRC' |
获取13位时间戳 |
select REPLACE (UNIX_TIMESTAMP(NOW(3)), '.', ''); 查询结果:1651566834201 |
select CAST(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP)* 1000 AS int8); 查询结果:1651568805613 |