gpt4 book ai didi

mysql比较表达式与2个时间戳

转载 作者:行者123 更新时间:2023-11-29 09:37:00 25 4
gpt4 key购买 nike

我正在 xampp 上托管的 MySQL 数据库(实际上是 maria DB)上测试此命令。我想使用此命令比较 2 个时间戳:

SELECT * 
FROM SESSIONS
WHERE START<='2019-08-07 11:00:00'<END
OR START<'2019-08-07 12:00:00'<=END
OR '2019-08-07 11:00:00'<=START<'2019-08-07 12:00:00'
OR '2019-08-07 11:00:00'<END<='2019-08-07 12:00:00'

我必须使用> < = ,不是between .

该表为上课时间表,start col 是类(class)开始日期时间,end col 是类(class)结束日期时间,运行此命令时表格仍然相同。

错误是什么?

最佳答案

您的条件

  OR '2019-08-07 11:00:00'<=START<'2019-08-07 12:00:00' 
OR '2019-08-07 11:00:00'<END<='2019-08-07 12:00:00'

无效
尝试使用有效的条件和正确的格式

SELECT * 
FROM SESSIONS
WHERE str_to_date('2019-08-07 11:00:00', '%Y-%m-%d %T') BETWEEN START AND END
OR str_to_date('2019-08-07 12:00:00', '%Y-%m-%d %T') BETWEEN START AND END
OR START BETWEEN str_to_date('2019-08-07 11:00:00', '%Y-%m-%d %T')
AND str_to_date('2019-08-07 12:00:00', '%Y-%m-%d %T')
OR END BETWEEN str_to_date('2019-08-07 11:00:00', '%Y-%m-%d %T')
AND str_to_date('2019-08-07 12:00:00', '%Y-%m-%d %T')

已更新答案以使用 e =>x<=在这种情况下,您应该使用正确的 AND 条件使用 () 分组条件,例如:

所以OR '2019-08-07 11:00:00'<=START<'2019-08-07 12:00:00'变成了

OR ( '2019-08-07 11:00:00'<=START  AND  START <'2019-08-07 12:00:00' )

OR '2019-08-07 11:00:00'<END<='2019-08-07 12:00:00'变成了

OR ( '2019-08-07 11:00:00'<END  AND END  <='2019-08-07 12:00:00' )  

关于mysql比较表达式与2个时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395969/

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