如何从Sql

时间:2017-08-02 06:54:48

标签: sql toad

我从前一天的表中选择率。我正在做的是减去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

4 个答案:

答案 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))));