有没有办法在查询中修改.where()查询的数据库端?

基本上,我有一个以 “2020-01-01 00:05:00 UTC “格式存储的DateTime,但我只需要将其中的时间日期(第一个)部分与我的params[:date](格式为 “2020-01-01″)进行比较。

有没有一种方法可以做到这样。

@events = Event.where(date.to_s.match(/\d{4}-\d{2}-\d{2}/): params[:date])

在数据库方面的查询已经在运行时被操作成只包含实际存储数据的一部分?

如果没有,还能怎么去做呢?

解决方案:

对于你上面的问题,你可以用这种方式来解决

@events = Event.where("DATE(date) = ?", params[:date])

上面这条命令将从datetime字段中比较日期部分,函数Date(.)是SQL命令的一部分。

如果params[:date]是字符串,你可以这样做

@events = Event.where("DATE(date) = ?", params[:date].to_date)

给TA打赏
共{{data.count}}人
人已打赏
未分类

Gradle执行某些任务时冻结3分钟。

2022-9-23 11:00:22

未分类

在Entity Framework Core 3.1中,基于多个搜索条件的LINQ Contains条件。

2022-9-23 11:11:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索