WHERE Customer.LastTranDate BETWEEN
udf_functions.udf_oracledatetimetotdatetime(to_date('2012/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS'))
AND
udf_functions.udf_oracledatetimetotdatetime(to_date('2016/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS'))
上述条件适用于特定日期,但我想检查相同的条件,为期12个月,即今天的日期和日期12个月之前。
我尝试了以下但是没有用。
WHERE Customer.LastTranDate BETWEEN
udf_functions.udf_oracledatetimetotdatetime(to_date(to_char(sysdate,'YYYY/MM/DD HH24:MI:SS')))
AND
udf_functions.udf_oracledatetimetotdatetime(to_date(to_char(add_months(sysdate,-12),'YYYY/MM/DD HH24:MI:SS')))
有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
咦?为什么所有转换为字符串和从字符串返回?
WHERE Customer.LastTranDate BETWEEN
udf_functions.udf_oracledatetimetotdatetime(add_months(sysdate, -12)) AND
udf_functions.udf_oracledatetimetotdatetime(sysdate
如果函数将Oracle date
作为参数(如to_date()
所示),则无需转换为字符串并返回日期。
我真的不明白为什么你有一个udf进行这样的转换。这只会伤害表现。
答案 1 :(得分:0)
无需在WHERE
部分查询日期转换。
如果您需要特定格式的日期,请在SELECT
部分执行此操作,并保留WHERE
原样