【问题标题】:i need to update the current time in a sql query我需要在 sql 查询中更新当前时间
【发布时间】:2009-04-28 05:45:17
【问题描述】:

Time.now 或 Time.now.to_s 或 Time.now.to_datetime 的使用抛出错误。

使用 Date.today 并没有帮助,因为它将日期和时间存储为 12.00 AM,而不是当前时间戳。

请帮我解决这个问题。

【问题讨论】:

  • 您使用的是哪个数据库系统? Postgres、MySQL、MS SQL、Oracle、Firebird、...?
  • 这听起来不太健康。 Time.now 上抛出了什么错误?

标签: ruby-on-rails ruby


【解决方案1】:

我不确定引发错误的原因和原因,但如果您尝试从 Ruby(这里特别是 Rails)生成正确 SQL 的日期字符串,您可以使用 Time.now.to_s(:db)

【讨论】:

  • 我认为与其他答案相比,您应该认真考虑这个答案。也许您希望时间戳成为数据库运行的时钟的函数,但也许您希望时间戳由执行代码的系统确定。只有这个答案才能提供该功能。
【解决方案2】:

我使用 CURRENT_TIMESTAMP 来获取带有时间戳的当前日期。有效。

感谢您的帮助。

【讨论】:

    【解决方案3】:

    您是否尝试过类似的语句(在更新语句中使用 now()):

    INSERT INTO table1 (field1, field2, field3, timestampfield) VALUES ('value1', 'value2', 'value3', now())
    

    [编辑:] 看看 here for an explanation 的“now()”

    【讨论】:

      【解决方案4】:

      对于更新尝试类似:

      UPDATE table1 SET mytime = now();
      

      如果您想在插入时放置适当的时间,您可以选择另一个选项,它只是为 datetime 字段默认设置 function now()。

      【讨论】:

      • 我使用 CURRENT_TIMESTAMP 来获取带有时间戳的当前日期。它奏效了。
      【解决方案5】:

      Time.now.to_formatted_s :db 这应该给你 db 友好的时间戳。

      http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Time/Conversions.html#M001093

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多