oracle - 根据(小于)CURRENT_DATE 过滤 oracle DB 中的记录似乎不起作用?
问题描述
有一个奇怪的问题,即使用CURRENT_DATE
(在特定时间)过滤 Oracle DB 中的记录似乎不起作用。
我有一个使用 sqoop 运行查询的日常 ETL 过程......
select a.* from SOURCE_DATA a where
POST_DATE > to_date('2020-04-10', 'yyyy-mm-dd')
AND POST_DATE < TRUNC(CURRENT_DATE)
AND \\$CONDITIONS
post_date
(较低的日期是根据我们本地数据 MSSQL 仓库中记录的最高值每天获取的)。我试图从 oracle DB 中的 SOURCE_DATA 表中获取除此之外的所有内容(但少于当天的数据)。
这在 2020 年 4 月 12 日运行。然而,我看到一些post_date
= 4/12/2020 的记录(而我希望最多只有post_date
= 4/11/2020 的记录)。因此,日期过滤器似乎不起作用。
这发生在之前将具有post_date
>=<current date>
的数据增量添加到源表(通常只有来自<current date>
- 1 的数据)
这个 sqoop 进程通过运行airflow
,那些 sqoop 日志显示...
[2020-04-12 21:32:54,161] {bash_operator.py:128} INFO - 20/04/12 21:32:54 INFO db.DataDrivenDBInputFormat: BoundingValsQuery: SELECT MIN(TDL_ID), MAX(TDL_ID) FROM (select a.* from SOURCE_DATA a where POST_DATE > to_date('2020-04-10', 'yyyy-mm-dd') AND POST_DATE < TRUNC(CURRENT_DATE) AND (1 = 1) ) t1
.
.
.
[2020-04-12 21:38:23,086] {bash_operator.py:128} INFO - 20/04/12 21:38:23 INFO mapreduce.ImportJobBase: Transferred 1.1264 MB in 331.2884 seconds (3.4816 KB/sec)
因此,我们看到查询在 2020 年 4 月 13 日上午 12 点(2020 年 4 月 12 日下午 9:32 - 2020 年 4 月 12 日下午 9:38)之前运行良好,post_date
从查询中查看 = 4/12/2020 的记录是有意义的.
检查 oracle DB 上的时区,
SELECT SESSIONTIMEZONE, SYSDATE, CURRENT_DATE, TRUNC(CURRENT_DATE), TRUNC(CURRENT_DATE - 1) FROM DUAL;
我们看
SESSIONTIMEZONE SYSDATE CURRENT_DATE TRUNC(CURRENT_DATE) TRUNC(CURRENT_DATE-1)
-10:00 4/13/2020 12:04:28 PM 4/13/2020 12:04:28 PM 4/13/2020 12:00:00 AM 4/12/2020 12:00:00 AM
所以昨天的日期看起来很好,时区偏移对于 HST 时间(我所在的时间)是正确的。
无法验证post_date
字段的数据类型(该表实际上是一个视图,我对其构造一无所知),但日期过滤器的下限似乎工作正常,所以我假设它是某种日期类型。
不确定是什么导致了这个错误(不确定是 oracle 还是 sqoop 或其他东西(因此有多个标签))。任何有更多经验的人都知道这里会发生什么?进一步的调试建议?
解决方案
推荐阅读
- pyspark - pyspark:将字符串更改为时间戳
- ios - iOS:一些应用似乎绕过了 NEPacketTunnelProvider。如何执行?
- c++ - 为什么 malloc 有时在 c++ 中不起作用?
- c++ - 为什么这些变量总是为零和 nan?
- mysql - 范围重叠 - MySQL
- python - 在导入之前检查 .csv 文件的格式是否正确,以避免将错误的数据嵌入数据库
- spring-data - 使用动态序列名称创建 Db 序列
- ssl - 使用 RequireCertificate 为单个控制器/端点设置 Kestrel
- javascript - 无法点击 - div 覆盖另一个 div
- python - Webscraping - 滚动在熊猫中的硒中不起作用