【问题标题】:Select Query 01722 issue with date Column选择带有日期列的查询 01722 问题
【发布时间】:2015-05-18 06:37:21
【问题描述】:

我们有一个问题,我从视图中选择了几列。此 Select Query throwing 01722 issue with date 列。请帮助解决这个问题。也让我知道为什么它说无效号码。

我的表结构如下。

GRE 1 VARCHAR2 (720 Byte) Y
EMPLOYEE_NUMBER 2 VARCHAR2 (30 Byte) Y
FULL_NAME 3 VARCHAR2 (240 Byte) Y
EMPLOYEE_CATEGORY 4 VARCHAR2 (80 Byte) Y
TERMINATION_DATE 5 DATE Y
LAST_UPDATE_DATE 6 DATE Y
RESIGNATION_NOTIFICATION_DATE 7 DATE Y
WORK_LOCATION 8 VARCHAR2 (30 Byte) Y
WORK_COUNTRY 9 VARCHAR2 (60 Byte) Y
PAYROLL_VENDOR_CODE 10 VARCHAR2 (3 Byte) Y
PTO_PAYOUT_HOURS 11 VARCHAR2 (60 Byte) Y
FLH_PAYOUT_HOURS 12 VARCHAR2 (60 Byte) Y
PAYROLL_COUNTRY 13 VARCHAR2 (80 Byte) Y
SUPERVISOR_NAME 14 VARCHAR2 (240 Byte) Y
SUPERVISOR_EMPLOYEE_NUMBER 15 VARCHAR2 (30 Byte) Y
HR_MANAGER 16 VARCHAR2 (240 Byte) Y
TERMINATION_REASON 17 VARCHAR2 (80 Byte) Y
NORMAL_WORK_HOURS 18 NUMBER (22,3) Y
FLSA 19 VARCHAR2 (10 Byte) Y
CURRENT_PERIOD_PTO_TAKEN 20 NUMBER Y
CURRENT_PERIOD_FH_TAKEN 21 NUMBER Y
JOB_TITLE 22 VARCHAR2 (700 Byte) Y

我尝试了以下查询。

SELECT * FROM `ALL_EMP_TERM_PAYOUT_V` WHERE trim( TERMINATION_DATE )
<= TO_DATE('03-05-2015','MM-DD-YYYY') and trim( TERMINATION_DATE )>= 
TO_DATE('03-05-2015','MM-DD-YYYY')

如果我只选择几列,我不会收到此错误。 where as if give select * ......我遇到了这个问题。

【问题讨论】:

    标签: oracle date-range ora-01722


    【解决方案1】:

    您如何将您的陈述更改为:

    SELECT * FROM ALL_EMP_TERM_PAYOUT_V 
       WHERE TERMINATION_DATE between TO_DATE('03-05-2015-00:00:00','MM-DD-YYYY-HH24:MI:SS') 
                                  and TO_DATE('03-05-2015-23:59:59','MM-DD-YYYY-HH24:MI:SS')
    

    Oracle 'Trim' 是一个应该与字符串一起使用的函数,而不是日期。您可能会遇到一些不需要的隐式强制转换。
    请查看documentation for the trim function 了解更多详情。

    如果这不能回答您的问题,请添加表创建脚本和视图创建脚本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2016-03-15
      相关资源
      最近更新 更多