mysql - 如果当前时间在行的开始时间和结束时间之间,则检索行

标签 mysql sql datetime

如果我运行查询

SELECT curtime(), concat(START_HOUR,':00:00'), concat(END_HOUR,':00:00') from table_name;

我得到以下结果

10:30:50 | 1:00:00 | 12:00:00

10:30:50 | 1:00:00 | 12:00:00

但是当我尝试检索行时如果当前时间在 START_HOUR 和 END_HOUR 之间(START_HOUR 和 END_HOUR 是 INT(2))它返回 0 行。

我尝试了以下查询,但都没有成功

SELECT curtime(), concat(START_HOUR,':00:00'), concat(END_HOUR,':00:00') from table_name WHERE curtime() >=concat(START_HOUR,':00:00') && curtime()<=concat(END_HOUR,':00:00');

SELECT curtime(), concat(START_HOUR,':00:00'), concat(END_HOUR,':00:00') from table_name WHERE curtime() BETWEEN concat(START_HOUR,':00:00') AND concat(END_HOUR,':00:00');

SELECT curtime(), concat(START_HOUR,':00:00'), concat(END_HOUR,':00:00') from table_name WHERE concat(curtime(),'') >=concat(START_HOUR,':00:00') && concat(curtime(),'')<=concat(END_HOUR,':00:00');

SELECT curtime(), concat(START_HOUR,':00:00'), concat(END_HOUR,':00:00') from table_name WHERE concat(curtime(),'') BETWEEN concat(START_HOUR,':00:00') AND concat(END_HOUR,':00:00');

SELECT curtime(), concat(START_HOUR,':00:00'), concat(END_HOUR,':00:00') from table_name WHERE CONCAT(DATE_FORMAT(NOW(), '%H:%i'), ':00') >=concat(START_HOUR,':00:00') && CONCAT(DATE_FORMAT(NOW(), '%H:%i'), ':00')<=concat(END_HOUR,':00:00');

以及这些的所有组合。

请帮助我找出我做错了什么以及如何检索所需的记录。

最佳答案

您需要将时间值CAST 为 TIME 类型。

SELECT 
    curtime(), 
    CAST(concat(START_HOUR,':00:00') as TIME), 
    CAST(concat(END_HOUR,':00:00') as TIME)
FROM table_name WHERE 
    CURTIME() BETWEEN 
        CAST(CONCAT(START_HOUR,":00:00") AS TIME) AND 
        CAST(CONCAT(END_HOUR,":00:00") AS TIME)

关于mysql - 如果当前时间在行的开始时间和结束时间之间,则检索行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39158744/

相关文章:

php - mysql+php 减去两次并显示差值

php - 使用 Laravel 更新 : created_at is updated when updating record

java - Zend/PHP : how to perform HTTP POST to controller and mapper php classes

android - 如何在mysql-android中插入图像

mysql - Laravel foreign_key 不正确的表定义;只能有一个自动列,并且必须将其定义为键

mysql - 从MySQL数据中获取最后的mod_date

java - JodaTime 是否错误地解析了这个日期时间?

mysql - 计算表格中显示的时间间隔并集的总长度

mysql - 显示记录组之间的平均时间

c# - 如何在C#中显示货币格式