【发布时间】:2019-03-14 09:47:13
【问题描述】:
鉴于上图......使用 Laravel 的 Eloquent - 我如何查找特定日期范围以返回该范围内的行?
我知道 Laravel 有一个 whereBetween 函数可以处理传统的日期字段,但由于这些是时间戳,我意识到我必须使用类似于 where('dates', '>=', $startTimestamp) 和 where('dates', '<=', $endTimestamp) 的东西,但我也必须这是否适用于从列中展开的每个日期?
感谢大家的帮助!
【问题讨论】:
-
我认为你的数据库建错了...
-
您的日期列的数据类型是什么?
-
在文本字段中以 CSV 格式显示日期可能是错误的方法。您可能想研究使用某种数据透视表或 JSON 列。就目前而言,您将很难根据该列获取特定记录,特别是如果您要依赖 php 的
explode()函数;需要先获取每条记录,然后才能过滤它们。 -
我使用了一个 jquery datepicker,它以 JSON 格式读取这种格式,这就是我最初采用保存分隔时间戳的方法的原因。
-
您应该为数据库中的每个单独的值使用原生
datetime或timestamp类型。否则,您还将无法访问用于查询此类列的所有有用方法,并且本机函数将(到目前为止)降低性能。在 PHP 中进行拆分比您以后继续使用此模式设计时所做的工作要少得多。至少在我看来,即使像您建议的那样创建视图也比更改架构更费力。
标签: php mysql laravel date eloquent