1.spring.datasource.validationQuery:
MySQL:SELECT 1 FROM DUAL
PostgreSQL:SELECT 1
2.分页查询:
MySQL:可以使用 limit 0, 10
PostgreSQL:不能用 limit 0, 10;可以用 limit 10 offset 0,不然会报数据库语法错误!
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 |