【问题标题】:A Database DateTime Value Conflict数据库日期时间值冲突
【发布时间】:2013-01-04 04:06:42
【问题描述】:

我有 10 年的每小时价格数据。意思是,每天有 24 个价格。

问题是,价格来自前一小时的交易。因此,我的数据源列出了每天的第 24 小时,并且没有 0 小时。

  Example (for further clarity):   
  The records for a day start at: 07/20/2010 01:00:00 
  The records for a day end at: 07/20/2010 24:00:00

这与我的 Rails Apps PostgreSQL DB 想要保存 DateTime 值的方式相冲突。当我将此数据从 CSV 导入我的数据库并将日期保存到 DateTime 列时,它将所有 24:00:00 更改为第二天的 00:00:00。这会影响我的各种最终用途的准确性。

无论如何我可以修改我的 Postgres DB 的行为以不这样做吗?还有其他建议吗?

【问题讨论】:

  • 你能显示正在执行导入的代码吗?
  • 一个 CSV 文件正在通过一个名为 Navicat for PostgreSQL 的 PostgreSQL GUI 导入。 CSV 记录在 01:00:00 并适当地在 24:00:00 结束。我可以编写自己的导入代码来解决这个问题吗?
  • 开始导入时数据库是空的,还是至少有一个开始时间可以做一些后期处理?
  • 它是空的...我可以编辑 CSV。我只需要重写自动保存未来数据的代码。
  • +1 个有趣的问题顺便说一句

标签: sql ruby ruby-on-rails-3 postgresql


【解决方案1】:

您总是可以在执行导入后减去一个小时。

我不知道您的数据库架构,因此要以一般方式执行此操作,您必须对具有日期的每一列执行此 SQL。

UPDATE table SET date_field = date_field - INTERVAL '1 hour'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    相关资源
    最近更新 更多