我在Oracle中使用了日期函数trunc,在Postgre中使用了date_trunc,它工作得很好,结果也很匹配。我试图使用通用的单一查询,它应该同时支持Oracle和Postgre SQL。我可以有一些输入,请,与to_char函数,它是给一些无与伦比的结果。
这是我的疑问;/Oracle/ select * from emp e inner join dept d on e.deptno=d.deptno and trunc(sysdate)<=trunc(joining_date);
/Postgre sql/ select * from emp e inner join dept d on e.deptno=d.deptno and date_trunc('day ',current_date)<=trunc('day',joining_date);
1条答案
按热度按时间2w2cym1i1#
不要尝试为不同的RDBMS使用相同的代码。它们支持不同的函数,您应该为每个RDBMS使用适当的函数。
如果你必须这样做(但我相信你实际上并不需要这样做),那么你可以在两个数据库中都使用
EXTRACT
:字符串
PostgreSQL fiddleOracle fiddle
然而,这感觉就像你太努力地想得到对两个数据库都有效的东西,而不是在每个数据库中使用适当的函数。