gpt4 book ai didi

sql - 运算符不存在 : timestamp without time zone ~~* unknown ruby code

转载 作者:行者123 更新时间:2023-12-03 20:28:00 24 4
gpt4 key购买 nike

我在进行搜索时尝试查询数据库中的用户。但是,我收到一个特定错误,即“运算符(operator)不存在:没有时区的时间戳 ~~* 未知”

在我的数据库中,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_ofbirth 是如何保存在数据库中的
 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”部分可能会遇到占位符功能。您可能需要对其进行修改才能使其正常工作。

关于sql - 运算符不存在 : timestamp without time zone ~~* unknown ruby code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56602533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com