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

使用SSIS生成含日期时间的唯一CSV文件名求助

解决SSIS生成唯一CSV文件名的表达式问题

嘿,我来帮你搞定这个SSIS文件名的问题!你原来的表达式主要在类型转换语法和小时制设置上出了点小问题,我给你修正后的版本,还会拆解每个部分的作用,方便你理解和调整:

修正后的完整表达式

"C:\\TEMP\\SaturnExport\\Exported_" 
+ RIGHT("0" + (DT_STR,2,1252)DATEPART("M", GETDATE()), 2) 
+ RIGHT("0" + (DT_STR,2,1252)DATEPART("DD", GETDATE()), 2) 
+ (DT_STR,4,1252)DATEPART("YYYY", GETDATE()) 
+ "_" 
+ RIGHT("0" + (DT_STR,2,1252)DATEPART("Hour", GETDATE()), 2) 
+ "_" 
+ RIGHT("0" + (DT_STR,2,1252)DATEPART("MI", GETDATE()), 2) 
+ "_" 
+ RIGHT("0" + (DT_STR,2,1252)DATEPART("SS", GETDATE()), 2) 
+ ".CSV"

关键问题说明 & 表达式拆解

  1. 修复类型转换语法
    你原来的写法(DT_STR,4,1252) DATEPART(...)是错误的——类型转换需要直接包裹住DATEPART的返回值,正确格式是(DT_STR,长度,编码)DATEPART(...)。比如月份是两位数,所以用(DT_STR,2,1252),年份是四位数用(DT_STR,4,1252)。

  2. 确保24小时制小时数
    原表达式用DATEPART("HH", GETDATE())会返回12小时制的数值(比如下午2点会得到02而不是14),改用DATEPART("Hour", GETDATE())就能获取24小时制的小时数,符合你示例里14的需求。

  3. 补零处理两位数格式
    RIGHT("0" + ..., 2)的作用是确保月份、日期、时分秒都是两位数:比如1月会变成01,9分钟会变成09,避免出现Exported_992020_2_5.csv这种不规整的文件名。

效果验证

这个表达式会生成你想要的格式,比如当前时间是2020年9月9日14点25分30秒,输出的文件名就是:Exported_09092020_14_25_30.CSV

内容的提问来源于stack exchange,提问作者Hamzah Amir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 06:42:36