【问题标题】:Sequel/FactoryGirl trying to force a Timestamp(6) into a Timestamp(0) no matter what is listed in the factorySequel/FactoryGirl 试图将 Timestamp(6) 强制转换为 Timestamp(0),无论工厂中列出了什么
【发布时间】:2017-10-12 16:32:07
【问题描述】:

我正在尝试插入具有如下列的 Teradata 表:

 END_DT TIMESTAMP(0),

在我的工厂中,我为该列赋予以下值:

FactoryGirl.define do
  factory :'database/table' do
    ...
    end_dt '5555-12-31 00:00:00'
    ...
  end
end

但是,当我尝试插入此表时,是尝试运行的 SQL 语句:

INSERT INTO DATABASE.TABLE(END_DT) VALUES ('5555-12-31 00:00:00.000000')

注意末尾额外的 6 个零,这会导致语句因时间戳无效而失败。

我尝试过使用 strftime,只使用日期,但似乎没有任何效果。

续集似乎一心想要添加这 6 个额外的零,我不知道为什么。

感谢任何帮助!

【问题讨论】:

    标签: ruby teradata factory-bot sequel


    【解决方案1】:

    您可能需要明确告诉 Sequel 不要使用分数时间戳:

    DB.extend_datasets{def supports_timestamp_usecs?; false end}
    

    希望这对您有用,但这可能取决于您的适配器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2012-02-26
      • 1970-01-01
      • 2020-12-15
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多