You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSIS技术咨询:如何在控制流或数据流中读取文件修改日期?

获取SSIS文件修改日期并带入数据流的步骤

你的方法完全可行,这是SSIS中获取文件元数据并集成到数据流的常用方案,具体操作步骤如下:

1. 创建并配置变量

  • 在SSIS包的变量面板中,新建两个变量:
    • User::FilePath:类型设为String,值填目标数据文件的完整路径(比如C:\Data\YourFile.csv),后续可改为动态路径提升灵活性
    • User::modifiedDate:类型设为DateTime,初始值可设为1900-01-01(后续会被实际文件修改日期覆盖)

2. 用脚本任务获取文件修改日期

在控制流中添加脚本任务,按以下步骤配置:

  • 打开脚本任务编辑器,切换到脚本选项卡,点击编辑脚本
  • 在脚本编辑器中,引入System.IO命名空间,编写代码获取并赋值文件修改时间:
    using System.IO;
    public void Main()
    {
        string filePath = Dts.Variables["User::FilePath"].Value.ToString();
        FileInfo fileInfo = new FileInfo(filePath);
        Dts.Variables["User::modifiedDate"].Value = fileInfo.LastWriteTime;
        Dts.TaskResult = (int)ScriptResults.Success;
    }
    
  • 关闭脚本编辑器,回到任务编辑器的ReadOnlyVariables选择User::FilePath,ReadWriteVariables选择User::modifiedDate,点击确定完成配置

3. 在数据流中引用变量

  • 用箭头连接脚本任务到数据流任务,确保脚本任务先执行(保证变量被赋值后数据流才启动)
  • 打开数据流任务,在已添加的派生列转换中新增列:
    • 列名可设为FileModifiedDate
    • 表达式填写@[User::modifiedDate]
    • 数据类型选择DT_DBTIMESTAMP(需与目标表的日期字段类型匹配)

4. 映射到OLE DB目标

  • 打开OLE DB目标编辑器,进入映射选项卡
  • 将派生列转换中新增的FileModifiedDate列,与目标表对应的日期字段完成映射
  • 保存配置并测试包,即可将文件修改日期(比如2024-02-22 17:05)写入目标数据库

内容的提问来源于stack exchange,提问作者MIN YOUNG CHOE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:22:26