选择Query 01722 issue with date Column

时间:2015-05-18 06:37:21

标签: oracle date-range ora-01722

我们有一个问题,我从视图中选择几列。此选择查询抛出01722问题与日期列。请帮助解决这个问题。也让我知道它为什么说无效号码。

我的表格结构如下。

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')

如果我只选择几列,我没有收到此错误。在哪里给选择* ...........我收到了这个问题。

1 个答案:

答案 0 :(得分:0)

如何将陈述改为:

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&#39;修剪&#39;是一个应该与字符串一起使用的函数,而不是日期。您可能遇到了一些不需要的隐式转换。
有关详细信息,请查看documentation for the trim function

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