gpt4 book ai didi

php - STR_TO_DATE 不适用于 laravel 中 IF 条件分隔的查询

转载 作者:行者123 更新时间:2023-11-29 15:42:30 24 4
gpt4 key购买 nike

需要从 MYSQL 中获取给定起始日期和截止日期的记录。日期在数据库中定义为 VARCHAR。如何在 Laravel 中使用 STR_TO_DATE(?, '%d/%m/%Y')

我已经尝试使用DB::raw("STR_TO_DATE(due_date, '%d/%m/%Y')")

$from_date = "12/08/2019";
$to_date = "12/12/2020";
$from_date_raw = DB::raw("STR_TO_DATE('".$from_date."', '%d/%m/%Y')");
$to_date_raw = DB::raw("STR_TO_DATE('".$to_date."', '%d/%m/%Y')");
$due_date_raw = DB::raw("STR_TO_DATE('due_date', '%d/%m/%Y')");
$query = DB::table('due_details')->where('amount', '>', 0);
if ($from_date != null && $to_date != null) {
$query->whereBetween($due_date_raw, [$from_date_raw, $to_date_raw]);
} else if ($from_date != null) {
$query->where($due_date_raw, '>=', $from_date_raw);
} else if ($to_date != null) {
$query->where($due_date_raw, '<=', $to_date_raw);
}
$data = $query->orderBy('id', 'asc')->get();

我期望给定日期之间的数据。给定表('due_details')数据。

当我在命令行上运行它时它可以工作,但不能从我的 GUI 中运行它。

最佳答案

不应为列名 due_date 添加引号。效果很好。DB::raw("STR_TO_DATE(due_date, '%d/%m/%Y')")

关于php - STR_TO_DATE 不适用于 laravel 中 IF 条件分隔的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57458617/

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