日期时间问题之间的MySQL TIME()

问题描述 投票:0回答:2

我正在尝试查找日期时间字段属于哪个班次。

班次定义为时间,我有一个开始时间和结束时间。

查询

SELECT * FROM shifts WHERE TIME('2009-11-20 06:35:00') BETWEEN '06:00:00' and '19:00:00' 

效果很好,但是当将班次设置为从19:00:00到06:00:00开始并且时间为23:35:00时,它什么也不会返回]]

WHERE TIME('2009-11-20 23:35:00') BETWEEN '19:00:00' and '06:00:00'

尽管我的桌子上有记录,但该行没有返回任何内容

谢谢

enter image description here这就是班次表。

如果我查询此:

SELECT
    a.ID,
    b.Nombre
FROM turnos a
JOIN operarios b ON a.oID = b.oId
WHERE a.uId = 1
AND (TIME('2019-11-22 18:23:00') BETWEEN a.horaInicio AND a.horaFin )
LIMIT 1 

我得到了正确的结果,但是当我查询这个时:

SELECT
    a.ID,
    b.Nombre
FROM turnos a
JOIN operarios b ON a.oID = b.oId
WHERE a.uId = 1
AND (TIME('2019-11-22 02:45:00') BETWEEN a.horaInicio AND a.horaFin )
LIMIT 1

我没有结果。

我正在尝试查找日期时间字段属于哪个班次。班次被定义为时间,我有一个开始时间和结束时间。查询SELECT * FROM移动WHERE TIME('2009-11-20 06:35:00')...

mysql
2个回答
0
投票

这是两种情况:开始时间结束时间。您需要这样的东西:


0
投票

由于'19:00:00'大于'06:00:00',所以:

© www.soinside.com 2019 - 2024. All rights reserved.