![](/img/trans.png)
[英]SQL: function trunc(timestamp without time zone, "unknown") does not exist
[英]operator does not exist: timestamp without time zone ~~* unknown ruby code
搜索时,我尝试查询数据库中的用户。 但是我遇到一个特定的错误,即“操作员不存在:没有时区的时间戳~~ *未知”
在我的数据库中,data_of_birth的记录以以下格式保存。 现在确定我所缺少的。 下面的代码
field == "dob"
selected_date = Date.strptime(query, '%Y-%m-%d')
items = Patient.joins(role: :user).where('users.date_of_birth ILIKE :search', search: "%#{selected_date}%")
这里date_of birth是如何保存在数据库中的
date_of_birth: "1997-03-29 00:00:00"
时间戳记以数字形式存储在数据库中,而不是以字符串形式存储,因此使用字符串比较(例如ILIKE
)将不起作用。
听起来您正在尝试将时间戳与日期进行匹配。 您可以简单地将时间戳转换为该日期。 就像是:
WHERE users.date_of_birth::date = '2019-06-14'
根据您的代码,这似乎可以转换为以下内容。
field == "dob"
selected_date = Date.strptime(query, '%Y-%m-%d')
items = Patient.joins(role: :user).where('users.date_of_birth::date = :search', search: "%#{selected_date}%")
我不熟悉您使用的库,但看起来“ :: date”部分可能会遇到占位符功能。 您可能需要对此进行修补才能起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.