ssis - 连接到 KISAM ODBC 数据库的 SSIS 数据流包无法导出昨天的更改
问题描述
我有一个现有的 SSIS 包,它在使用 KODBC 32 位驱动程序和以下数据流中的 SQL 命令从 KISAM 数据库中的选定表中导出所有行之前截断 SQL Server 数据库表:
select * from table_a
select * from table_b
etc
对于最大的表,这是超过 330 万行和 100 多列。但是在任何一天只有不到 5,000 行会发生变化。
由于业务需求,我只能在凌晨 1 点到凌晨 4 点之间运行包。我有一个工作测试包,它使用以下命令返回预期的 5,000 行:
Select * from table_a where table_a.date_column1=curdate()
这给了我今天更改的行,但我需要能够返回昨天更改的行。
我试过了:
Select * from table_a where table_a.date_column1=(curdate(), INTERVAL -1, DAY)
,但出现语法错误,因为我认为这可能是 MySQL 或其他 ODBC 语法。
昨天为 Kerridge/Kisam ODBC 获取的正确语法是什么?
解决方案
使用该DATE_ADD()
函数将时间/日期间隔添加到日期,然后返回日期:
SELECT * FROM table_a WHERE table_a.date_column1=DATE_ADD(CURDATE(), INTERVAL -1 DAY)
推荐阅读
- python - 并非所有 ascii_lowercase 组合都生成
- python - 检查 git 上的 Python 包是否比本地更新
- python - Seaborn catplot 透明度定制
- python - 如何获得`bq://project_id'
- python - 使用张量上的字符串操作进行文本预处理
- ansible - Ansible.在远程/之后本地运行任务
- stackdriver - GKE 上的 Stackdriver Trace 与 Python 应用在一个集合中聚合指标
- reactjs - 创建我的第一个 React 项目的问题
- translation - 在将新字段扩展到用户插件后,我如何在 10 月 CMS 上使用翻译插件?
- reactjs - 来自自定义组件的 PrimeReact DataTable 动态列