我从前一天的表中选择率。我正在做的是减去1表格日期参数但在执行此查询后我收到错误“ORA-00932:不一致的数据类型:预期DATE得到NUMBER”。请指导我如何克服此错误。提前致谢。 我的示例查询是:
SELECT CCY_RATE.MID_REVAL_RATE
FROM curr_currency_market_his CCY_RATE
WHERE CCY_RATE.CURR_ID = a.CCY_BOUGHT
AND CCY_RATE.CURRENCY_MARKET = 1
AND CCY_RATE.LEAD_COMPANY = 1
AND CCY_RATE.BANKING_DATE =:Report_date -1
答案 0 :(得分:0)
您可以尝试以下查询来获取前一天:
SELECT CCY_RATE.MID_REVAL_RATE
FROM curr_currency_market_his CCY_RATE
WHERE CCY_RATE.CURR_ID = a.CCY_BOUGHT
AND CCY_RATE.CURRENCY_MARKET = 1
AND CCY_RATE.LEAD_COMPANY = 1
AND CCY_RATE.BANKING_DATE =DATEADD(DD, DATEDIFF(DY, 0, :Report_date), -1);
答案 1 :(得分:0)
使用DATE_SUB删除时间
:Report_date
此处您要说的是要从{{1}}删除“1天”。
希望它有所帮助。
答案 2 :(得分:0)
试试这个:
SELECT CCY_RATE.mid_reval_rate
FROM curr_currency_market_his CCY_RATE
WHERE CCY_RATE.curr_id = a.ccy_bought
AND CCY_RATE.currency_market = 1
AND CCY_RATE.lead_company = 1
AND Cast(CCY_RATE.banking_date AS DATE) >= Cast(report_date - 1 AS DATE)
答案 3 :(得分:0)
如果你想通过mysql完成这个,试试这个,
DATEDIFF(DAY, DATEADD(day, -1, @CreatedDate), GETDATE())
如果不起作用,那么您可以通过php计算日期并传递实际日期。要通过php计算日期,请尝试以下方法:
date('Y-m-d', strtotime('-1 day', strtotime(report_date))));