gpt4 book ai didi

php - 两个日期查询之间的mysql日期字符串不起作用

转载 作者:行者123 更新时间:2023-11-28 23:55:37 26 4
gpt4 key购买 nike

我想在两个日期之间获取报告,我不知道什么是最好的方法,我做了一个查询,但有时它不起作用,我不知道错误在哪里。

再次感谢。

我在 mysql 字段类型 varchar 中使用 php date('h:iA d-m-Y') 保存日期时间。

mysql 行日期示例:

09:22AM 26-06-2015
08:00AM 27-06-2015
10:00PM 28-06-2015

当我使用此数据示例 $since=01-06-2015 $until=30-06-2015 时,这有效

但如果我使用此数据 $since=01-06-2015 $until=01-07-2015 这不起作用。

    $since = $_REQUEST['since'];
$until = $_REQUEST['until'];

mysql_query("select * from paradas where DATE_FORMAT(STR_TO_DATE(SUBSTR(date, 9),'%d-%m-%Y') , '%d-%m-%Y') between '".$since."' and '".$until."' ");

最佳答案

通过将您的日期和时间存储为 VARCHAR ,而不是 DATETIME您还将两行之间的比较从日期时间比较(按时间顺序)更改为字符串比较(词法)。

如果您现在(在您的示例中)选择了字符串表示形式,其中词法比较提供与时间顺序比较不同的结果,则您不能再使用像 BETWEEN 这样的结构或像 <= 这样的运算符和 friend 。

解决方案:如果要存储日期和时间信息,请使用 DATETIME列类型。

除此之外,让我引导您前往 this SO question讨论您的 SQL 查询。

编辑

只是为了说明这一点:

按字典顺序 '01-06-2015' < '20-06-2015' < '30-06-2015' 与时间顺序相同

但按字典顺序 '01-06-2015' < '01-07-2015' < '20-06-2015' ,这与时间顺序相反。

关于php - 两个日期查询之间的mysql日期字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31775954/

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