You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB中WHERE子句筛选每月首尾日期的查询问题

问题:查询每月第一天和最后一天的记录(MariaDB 10.4/PHPMyAdmin)

我们尝试通过JOIN查询获取每月第一天和最后一天的所有记录,使用环境为PHPMyAdmin下的MariaDB 10.4,以下是各次查询及结果:


查询1

SELECT storing_eigenschappen.date, storing_eigenschappen.traplift_id, storing_warnings.raw_warning, storing_errors.raw_error
FROM storing_eigenschappen 
LEFT OUTER JOIN storing_warnings ON storing_eigenschappen.traplift_id = storing_warnings.traplift_id AND storing_eigenschappen.date = storing_warnings.date 
LEFT OUTER JOIN storing_errors ON storing_eigenschappen.traplift_id = storing_errors.traplift_id AND storing_eigenschappen.date = storing_errors.date 
WHERE storing_eigenschappen.traplift_id LIKE "UP-%" 
    AND DAY(storing_eigenschappen.date) = 1 
    AND DAY(storing_eigenschappen.date) = LAST_DAY(storing_eigenschappen.date)

结果1:未找到任何记录


查询2

SELECT storing_eigenschappen.date, storing_eigenschappen.traplift_id, storing_warnings.raw_warning, storing_errors.raw_error 
FROM storing_eigenschappen 
LEFT OUTER JOIN storing_warnings ON storing_eigenschappen.traplift_id = storing_warnings.traplift_id AND storing_eigenschappen.date = storing_warnings.date 
LEFT OUTER JOIN storing_errors ON storing_eigenschappen.traplift_id = storing_errors.traplift_id AND storing_eigenschappen.date = storing_errors.date 
WHERE storing_eigenschappen.traplift_id LIKE "TL-%" 
    AND (
        DAY(storing_eigenschappen.date) = 1 OR 
        DAY(storing_eigenschappen.date) = LAST_DAY(storing_eigenschappen.date)
    )

结果2:
Array ( [date] => 2024-06-01 14:08:25.000000 [traplift_id] => TL-123456 [raw_warning] => [raw_error] => )


查询3

SELECT storing_eigenschappen.date, storing_eigenschappen.traplift_id, storing_warnings.raw_warning, storing_errors.raw_error 
FROM storing_eigenschappen 
LEFT OUTER JOIN storing_warnings ON storing_eigenschappen.traplift_id = storing_warnings.traplift_id AND storing_eigenschappen.date = storing_warnings.date 
LEFT OUTER JOIN storing_errors ON storing_eigenschappen.traplift_id = storing_errors.traplift_id AND storing_eigenschappen.date = storing_errors.date 
WHERE storing_eigenschappen.traplift_id LIKE "UP-%" 
     AND (
        DAY(storing_eigenschappen.date) = 1 OR 
        DAY(storing_eigenschappen.date) = 31 OR 
        DAY(storing_eigenschappen.date) = 30 OR 
        DAY(storing_eigenschappen.date) = 29
    )

结果3:
Array ( [date] => 2024-06-01 14:08:25.000000 [traplift_id] => TL-123456 [raw_warning] => [raw_error] => ) Array ( [date] => 2024-06-30 14:08:52.000000 [traplift_id] => TL-123456 [raw_warning] => [raw_error] => ) Array ( [date] => 2024-06-29 14:41:22.000000 [traplift_id] => TL-123456 [raw_warning] => [raw_error] => )


查询4

尝试添加以下语句获取每月最后一天:

DATE_SUB(DATE_ADD(DATE_ADD(storing_eigenschappen.date, INTERVAL 1 MONTH), INTERVAL -DAY(DATE_ADD(storing_eigenschappen.date, INTERVAL 1 MONTH)) DAY), INTERVAL 1 DAY)

结果4:MariaDB提示语法错误


内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:45:22