【问题标题】:How to specify a date value parameter in Toad for an Oracle Query using the query parameter window?如何使用查询参数窗口在 Toad 中为 Oracle 查询指定日期值参数?
【发布时间】:2016-04-08 14:48:26
【问题描述】:

在下面的硬编码查询中,我有两个 varchar2 参数和两个日期参数。

select * from myTable
where title = 'abc'
and start_date = TO_DATE('04/05/2016', 'mm/dd/yyyy')
and end_date = TO_DATE('04/06/2016', 'mm/dd/yyyy')
and description = 't';

此查询返回两行。

当我使用 Toad 查询参数值输入窗口运行相同的查询时

select * from myTable
where title = :ttitle 
and start_date = :startdate
and end_date = :enddate 
and description = :descrip;

我输入 abc 作为 ttitle 参数,2016/04/05 作为开始日期,2016/04/06 作为结束日期,t 作为描述。然后我收到以下日期参数错误

ORA-01861: 文字与格式字符串不匹配

我尝试了日期 '04/05/2016' 的其他变体,我尝试了整个 TO_DATE('04/05/2016'....), ... 和其他格式,但不断出错。注意:如果我注释掉日期参数并只使用 varchar2 参数,当我输入 abc 和 t 时查询就会运行。我的问题是日期参数。在 Toad 的参数窗口中输入日期值的正确方法是什么?

【问题讨论】:

    标签: oracle11g toad


    【解决方案1】:

    尝试'DD-MON-YYYY' 的日期格式,即'08-APR-2016'。我认为它需要与您会话中设置的 NLS_DATE_FORMAT 相匹配:

    要查看您的 NLS_DATE_FORMAT:

    SELECT value
    FROM   nls_session_parameters
    WHERE  parameter = 'NLS_DATE_FORMAT'
    

    您还可以更改会话的日期格式,这样输入的日期将被视为日期,不需要 TO_DATE。

    ALTER SESSION SET nls_date_format = 'dd/mm/yyyy'
    

    【讨论】:

      猜你喜欢
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      相关资源
      最近更新 更多