gpt4 book ai didi

ruby-on-rails - 两个日期参数之间的 ruby​​ 查询

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:28 24 4
gpt4 key购买 nike

我有一个名为 Result 的模型。我需要创建一个变量来返回某个日期范围内的所有结果。在 Result 模型上有一个名为 date 的字段,在一个表单上我正在捕获开始和结束日期作为参数并将它们传递回 Controller 。

因此,如果用户在开始日期参数中输入“01/01/2014”并在参数中输入“01/01/2015”,我需要返回所有日期在此范围内的结果。

当用户按下“过滤器”按钮时,参数最终被捕获为变量开始日期和结束日期

我试过了,但是好像不行

@results = Result.where("date >= ? and date <= ?", startdate, enddate")

然后我查看了生成的 SQL 并认为它需要是这样的

@results = Result.where("date >= ? and date <= ?", '#{startdate)', '#{enddate}')

有什么想法吗?

谢谢

最佳答案

正如@MrYoshiji 还建议的那样,在这种情况下你应该注意的一件事是你的 startdateenddate 都是 Date , DateTimeTime 对象。否则,比较将失败。

1.) 一种快捷方式是将日期选择器应用到您的 input 标记中。你可以specify the format在日期选择器的初始化程序中。

2.) 使用 date/time tag rails form helper .

3.) 使用 regex以确保格式正确。

当它通过所有验证时,然后执行:

@results = Result.where(date: Date.parse(startdate).beginning_of_day..Date.parse(enddate).end_of_day)

您还可以在末尾添加救援以确保它不会转到 500 页。

在查询的末尾添加一个rescue Result.all(以防ALL-ELSE-FAILED)

是的,请确保您的时区正确。 postgresql 的默认值为 UTC。

关于ruby-on-rails - 两个日期参数之间的 ruby​​ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24065892/

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