gpt4 book ai didi

mysql - 将日期时间值与 null 进行比较时,日期时间值不正确

转载 作者:行者123 更新时间:2023-11-29 15:45:55 25 4
gpt4 key购买 nike

我的数据库(mysql)中有两个日期时间列——completed_at、due_date。我正在使用连接到mysql的lumen框架。问题是我的“completed_at”列可以为空并且包含空值。现在,如果“completed_at”不为空,我需要计算有多少记录在 due_date 之前完成了工作。

我的代码是-

$completed_tasks_before = Task::where('tasks.assignee_id', $current_user->id)
->where('status','completed')
->where('completed_at', '<>', null)
->where('due_date' ,'>=', 'completed_at')
->count();

我希望这能给我 due_date >= Completed_at 的记录计数,但它给了我以下错误 -

SQLSTATE[HY000]: General error: 1525 Incorrect DATETIME value: 'completed_at' (SQL: select count(*) as aggregate from `tasks` where `tasks`.`assignee_id` = 2 and `status` = completed and `completed_at` is not null and `due_date` >= completed_at)

最佳答案

问题在于您将 due_date 列与 completed_at STRING 进行比较,而不是与该列的值进行比较。因此更改这一行:

->where('due_date' ,'>=', 'completed_at')

对此:

->whereColumn('due_date' ,'>=', 'completed_at')

请参阅documentation (whereColumn/orWhereColumn 部分)

关于mysql - 将日期时间值与 null 进行比较时,日期时间值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57052086/

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