Rails很擅长在MySql中自动插入格式正确的日期时间,而无需我仔细考虑.

然而,为了进行验证,我需要判断存储的mysql日期时间值(ie 2008-07-02 18:00:00)是否大于或小于"now".我可以拨打DateTime.nowTime.now,但如何将其转换为mysql喜欢的格式?

谢谢

推荐答案

可以使用to_s(:db)将其转换为数据库友好的格式.

Time.now.to_s(:db)

但是,如果在Rails中指定了时区,请小心,因为时间将以UTC格式存储在数据库中.您需要指定它来进行适当的比较.

Time.now.utc.to_s(:db)

您也可以在MySQL中使用NOW()函数,而不是在Ruby中生成当前时间.

Ruby-on-rails相关问答推荐

在has_many关系中由两个条件 Select

使用ImportMaps将HighLightJS添加到rails 7.1

具有 IN 子句的参数化查询在 ruby​​-on-rails 的 blazer 工具中无法按预期工作

组织和/或存储我一直在 RSpec 中使用的模拟对象的最佳方式是什么?

序列化来自关联的不可变数据是个好主意吗?

Rspec期望()与期望{}

Devise + Omniauth - 如何传递额外的参数?

如何在 Ruby 字符串中返回最后一个斜杠(/)之后的所有内容

跳过模型中的某些验证方法

如何在 ruby​​ on rails 中获取控制器和操作列表?

模型验证中的 Rails 国际化 (I18n):可能与否?

从控制器中删除 Cookie

在本地 Rails 开发环境中获取真实 IP 地址

如何禁用 HTTP 严格传输安全性?

如何从邮箱中获取域

在 rails 3 中批量插入

Rails SQL 正则表达式

submit_tag rails 表单中的 bootstrap 图标

通过get in rails传递参数数组

Rails: Sprockets::Rails::Helper::AssetNotPrecompiled 在开发中