【问题标题】:Extract/Compare only Year from DATETIME field in SSIS从 SSIS 中的 DATETIME 字段中仅提取/比较年份
【发布时间】:2015-03-20 20:09:45
【问题描述】:

尝试检查派生列中日期时间列的年份是否小于 1754.. 我的表达式是

(YEAR([OffenseEndDate]) < 1754) ? (DT_DBTimeStamp)"1900-01-01 00:00:00" : [OffenseEndDate]

我不断收到错误消息。我还将错误通过管道传输到另一个文件,其中一些日期看起来像这样

0010-05-06 00:00:00

不明白为什么这种方法在 SSIS 中不起作用。我要么想清空年份小于 1754 的日期,要么只输出 1900-01-01。

【问题讨论】:

  • 我测试了你的情况。我没有收到任何错误。对我来说,[OffenseEndDate] 列是日期时间,所有行都是有效日期。我尝试了日期 1753-01-22 06:07:10.347,结果为 1900-01-01
  • 可能是您在数据集中的日期无效。
  • 很可能......有什么技巧可以“修复”它们吗?

标签: mysql sql sql-server datetime ssis


【解决方案1】:

尝试派生列代码:

(DT_I4)(SUBSTRING((DT_WSTR,20)[OffenseEndDate],1,4)) < 1754 ? (DT_DBTimeStamp)"1900-01-01 00:00:00" : [OffenseEndDate]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多