-1

我们有一个问题,我从视图中选择了几列。此 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')

如果我只选择几列,我不会收到此错误。好像给选择 * ......我遇到了这个问题。

4

1 回答 1

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 'Trim' 是一个应该与字符串一起使用的函数,而不是日期。您可能会遇到一些不需要的隐式强制转换。 有关更多详细信息,请查看 trim 功能
的文档。

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

于 2015-05-18T06:49:33.380 回答