在 2 个不同列中的小时之间制作 SELECT
Make SELECT of an hour between to hours that are in 2 different columns
我有以下table。我想只对 11:35 小时在 starthour 和 endhour 之间的行进行 SELECT。
TABLE NAME USER
id, name, starthour(DATE), endhour(DATE)
1, "mariano", 10:35:00, 13:00:00
2, "patrick", 17:35:00, 19:00:00
3, "gloria", 21:22:00, 22:00:00
4, "david", 22:29:00, 23:33:00
如果尝试执行以下操作 SELECT。
SELECT id, name, starthour, endhour FROM user WHERE (11:59 BETWEEN starthour AND endhour);
我只使用大于和小于,像这样:
SELECT id, name, starthour, endhour
FROM user
WHERE starthour < 11:35:00 AND endhour > 11:35:00;
...而且,是的,您可能是想使用 TIME 数据对象?您可以类似地比较 DATE,但只需调整数据格式即可。
实际上,我不确定您的 starthour 和 endhour 字段是 DATE 类型。您不想使用 TIME 吗?
如果这里没有,则日期可能重复:SQL query to select dates between two dates
您应该使用 TIME(starthour) 或 EXTRACT() 函数 http://www.w3schools.com/sql/func_extract.asp,因此如果您使用从传递的表达式中提取时间的 TIME() 函数,结果将是:
SELECT id, name, starthour, endhour FROM user WHERE (TIME('11:59:00') BETWEEN TIME(starthour) AND TIME(endhour));
试试这个,我认为它应该有效。
您似乎在尝试对日期列进行时间查询。假设开始和结束时间是实际的日期时间列,这应该可以解决问题。
SELECT id, name, starthour, endhour
FROM user WHERE TIME(starthour) <= '11:35:00'
AND TIME(endhour) <= '11:35:00'
它应该提供 '11:35:00' 的记录,而不考虑日期。
如果您不使用日期时间,那么 starthour(DATE), endhour(DATE)
应该是 starthour(TIME), endhour(TIME)
并且查询
SELECT id, name, starthour, endhour
FROM user WHERE starthour <= '11:35:00'
AND endhour <= '11:35:00'
应该可以。
我有以下table。我想只对 11:35 小时在 starthour 和 endhour 之间的行进行 SELECT。
TABLE NAME USER
id, name, starthour(DATE), endhour(DATE)
1, "mariano", 10:35:00, 13:00:00
2, "patrick", 17:35:00, 19:00:00
3, "gloria", 21:22:00, 22:00:00
4, "david", 22:29:00, 23:33:00
如果尝试执行以下操作 SELECT。
SELECT id, name, starthour, endhour FROM user WHERE (11:59 BETWEEN starthour AND endhour);
我只使用大于和小于,像这样:
SELECT id, name, starthour, endhour
FROM user
WHERE starthour < 11:35:00 AND endhour > 11:35:00;
...而且,是的,您可能是想使用 TIME 数据对象?您可以类似地比较 DATE,但只需调整数据格式即可。
实际上,我不确定您的 starthour 和 endhour 字段是 DATE 类型。您不想使用 TIME 吗?
如果这里没有,则日期可能重复:SQL query to select dates between two dates
您应该使用 TIME(starthour) 或 EXTRACT() 函数 http://www.w3schools.com/sql/func_extract.asp,因此如果您使用从传递的表达式中提取时间的 TIME() 函数,结果将是:
SELECT id, name, starthour, endhour FROM user WHERE (TIME('11:59:00') BETWEEN TIME(starthour) AND TIME(endhour));
试试这个,我认为它应该有效。
您似乎在尝试对日期列进行时间查询。假设开始和结束时间是实际的日期时间列,这应该可以解决问题。
SELECT id, name, starthour, endhour
FROM user WHERE TIME(starthour) <= '11:35:00'
AND TIME(endhour) <= '11:35:00'
它应该提供 '11:35:00' 的记录,而不考虑日期。
如果您不使用日期时间,那么 starthour(DATE), endhour(DATE)
应该是 starthour(TIME), endhour(TIME)
并且查询
SELECT id, name, starthour, endhour
FROM user WHERE starthour <= '11:35:00'
AND endhour <= '11:35:00'
应该可以。