laravel - 如何为这个普通的 SQL 查询编写 Laravel 雄辩的查询(内部查询)
问题描述
SELECT *
FROM (
SELECT *
FROM appointments
WHERE `date` <= Curdate()
) `t`
WHERE `t`.`end_time` <= current_time
如何为这个 SQL 查询编写一个 Laravel雄辩的等效查询?
解决方案
如果要查询:
- 所有过去的约会(从开始到昨天,基于
date
字段)+ - 今天所有今天
end_time
没有过去(或现在)的约会
假设您有合适的appointment
表格模型,您可以尝试以下操作:
Appointments::where('appointments.date', '<', Carbon::now()->toDateString())
->orWhere(function ($query) {
$query->where('appointments.date', Carbon::now()->toDateString())
->where('appointments.end_time', '<=', Carbon::now()->toTimeString());
});
您可能需要测试where
子句中使用的 Carbon 格式,以确保它与您的数据库存储格式匹配,并且查询返回预期结果。
推荐阅读
- c# - 使用带有外部 Azure KeyVault (HSM) 密钥的 BouncyCastle 创建证书时签名无效
- jquery - 如何将引导切换器默认设置为 ON?
- jupyter-notebook - 在 JUPYTERLAB Azure ML Studio 中打开笔记本时出现 ERR_HTTP2_PROTOCOL_ERROR
- react-router - 如何从 Docusuarus 页脚链接到非 Docusaurus 定义的路线?
- sql - SQL 命令未正确结束添加必须限制要显示的数据集
- sql - 在本地数据库中存储 OAuth 用户信息(用户名、名字、姓氏等)
- r - 如何使用此数据集在 R 中执行滚动回归?
- python - 如何从字符串中删除 ('')
- symfony - 如何使用 webpack 在 symfony 项目中为数据表库设置修复头
- load - 如何检查从 aws S3 到雪花的数据加载结果