gpt4 book ai didi

php - MYSQL 的 BETWEEN 日期的 SQL 查询不包括指定范围?

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:37 25 4
gpt4 key购买 nike

我正在尝试为 MYSQL 创建一个 SQL 语句来检索日期范围内的记录。我希望返回的记录包括指定范围的两个日期。目前这还没有发生。请问有人可以建议吗?

我的 SQL-PHP:

 $fromDate = '21-SEP-2018';
$toDate = '29-SEP-2018';

$sql = "SELECT * FROM myTable WHERE zapDocUserId='$USER_ID' AND dateUpload BETWEEN \"$fromDate\" AND \"$toDate\" ORDER BY dateUpload DESC";
$result = $mysqli -> query($sql);

我取回的记录不包括日期为 21-SEP-2018 和 29-SEP-2018 的记录。我希望将其包括在内。

最佳答案

不要对日期使用 between。问题是时间成分。 Aaron Bertrand 有一篇关于此的精彩博客 (What do BETWEEN and the devil have in common?)。尽管适用于 SQL Server,但它适用于任何数据库。

你似乎想要:

SELECT *
FROM myTable
WHERE zapDocUserId = '$USER_ID' AND
dateUpload >= '$fromDate' AND
dateUpload < '$toDate' + interval 1 day
ORDER BY dateUpload DESC;

当然,这不会修复您的日期格式。那是另一回事。但是,您不应该仅仅修复日期格式。您应该学习如何将参数传递到查询中,以便查询从正确的类型开始。使用占位符,查询看起来更像:

SELECT *
FROM myTable
WHERE zapDocUserId = ? AND
dateUpload >= ? AND
dateUpload < ? + interval 1 day
ORDER BY dateUpload DESC;

关于php - MYSQL 的 BETWEEN 日期的 SQL 查询不包括指定范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53059477/

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