Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 获取特定时间段之间的记录_Oracle - Fatal编程技术网

Oracle 获取特定时间段之间的记录

Oracle 获取特定时间段之间的记录,oracle,Oracle,我正在尝试在时间范围内挑选所有可用的记录 我需要从表2中获取时间戳,并获取表1中的所有记录在该时间和当前时间之间可用 SELECT COUNT(*) FROM TABLE1 WHERE STATUS = 'COMPLETED' AND LAST_UPDATE_USER = 'myID' AND LAST_UPDATE_DT BETWEEN TO_DATE(( SELECT /*+PARALLEL(16)*/ SIG

我正在尝试在时间范围内挑选所有可用的记录

我需要从表2中获取时间戳,并获取表1中的所有记录在该时间和当前时间之间可用

SELECT COUNT(*) 
FROM TABLE1 
WHERE STATUS = 'COMPLETED' 
      AND LAST_UPDATE_USER = 'myID' 
      AND LAST_UPDATE_DT BETWEEN 
          TO_DATE((
              SELECT /*+PARALLEL(16)*/ SIGN_IN_DT 
              FROM TABLE2 
              WHERE ID = 'myID' 
                    AND SIGNED_SCREEN = 'screen1' 
                    AND SIGN_OFF_DT IS NULL), 
              'dd-mon-yyyy hh24:mi:ss.ff') 
           AND SYSDATE;
两个表中的日期格式=
05-MAR-19 07.47.26.769934000 PM

我得到一个例外:

ORA-01821:无法识别日期格式

请提供帮助。

尝试以下查询:

select * from table1 t1
      join table2 t2 on t1.last_update_user = t2.ID
where t1.status = 'COMPLETED'
  and t1.last_update_user = 'myID'
  and t2.signed_screen = 'screen1'
  and t2.sign_off_dt is null
  and t1.last_update_dt between t2.sign_in_dt and sysdate;

这两列的数据类型是什么?时间戳数据类型。为什么对已经是
日期
(或
时间戳
)的值执行
到日期(…)
?只需将
跳过到\u DATE(…
不要尝试将日期(或时间戳)数据类型中已经存在的内容转换为日期(或时间戳)。您有两个时间戳列,因此只需按原样进行比较!您的子查询必须只返回1行。在这种情况下,
/*+PARALLEL(16)*/
似乎毫无用处。