我有一个应该在oracle上运行的查询, 这是片段
select
username,
CASE WHEN eff_dt <= CURRENT_DATE and ((trmn_dt is null) or (trmn_dt > CURRENT_DATE)) THEN 'Y'
ELSE 'N'
但我们也有几个基于德比的单元测试运行相同的查询。
现在问题是我要将其更改为使用SYSDATE
或使用CURRENT_DATE+1/24
。
(修复中央和东海岸客户端 - 服务器时区差异问题)
但是derby并不支持SYSDATE
,并且derby的算术语法与oracle不同。
如何解决这个障碍?
答案 0 :(得分:0)
我不熟悉德比,但你可以创建一个可以返回正确日期的函数。然后在oracle中创建一个具有相同名称的类似函数 那么你的查询(在oracle和derby中)将会是这样的:
select username,
CASE WHEN eff_dt <= YOUR_FUNCTION_NAME and ((trmn_dt is null)
or (trmn_dt > YOUR_FUNCTION_NAME)) THEN 'Y'
ELSE 'N'