gpt4 book ai didi

MySQL:无法正确将字符串值与日期进行比较

转载 作者:行者123 更新时间:2023-11-29 18:20:31 24 4
gpt4 key购买 nike

我正在尝试显示位于两个范围之间的行。这两个范围将是日期。其中一列将日期存储为字符串,格式为“8-10-2017/05:00 AM”为了比较这些值,我使用以下查询:

SELECT * FROM `Game` WHERE (Home_School_Name = 'Paarl Boys' OR Away_School_Name = 'Paarl Boys') && Status = 'NOT STARTED' && STR_TO_DATE(LEFT(Start_Time,LOCATE(' ',Start_Time)),'%m-%d-%Y') BETWEEN '2017-8-10' AND '2017-15-10'  

现在有两个游戏应该在结果中返回。 2017 年 8 月 10 日、2017 年 10 月 9 日。当我发送范围为 2017-1-10 和 2017-8-10 时,它显示第一场比赛。当我尝试 2017-8-10 和 2017-8-12 时。它显示这两个游戏。但当我大于 12 时,它就会停止返回它们。我知道我传递的日期格式有问题。但我一直无法弄清楚。我也看到过类似的问题,但没有一个对我有用。

感谢任何帮助。

最佳答案

您确实应该将日期/时间存储为datetime,而不是字符串。使用错误的数据类型只会使后续工作变得更加困难。

MySQL 通常采用 ISO 标准格式 YYYY-MM-DD 的日期常量,所以试试这个:

SELECT g.*
FROM `Game` g
WHERE 'Paarl Boys' IN (Home_School_Name, Away_School_Name = 'Paarl Boys') AND
g.Status = 'NOT STARTED' &
STR_TO_DATE(LEFT(Start_Time, LOCATE(' ', Start_Time)), '%d-%m-%Y') BETWEEN '2017-10-08' AND '2017-10-15'

关于MySQL:无法正确将字符串值与日期进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46624685/

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