首页 > 解决方案 > 如何在时间到达和离开列之间选择数据?

问题描述

我想从数据 arr_time >= date(H:i:s) 和 dep_time <= date(H:i:s) 的 mysql 中选择数据,我该怎么做?

因为我试图使用它,但没有结果。我的查询是:

SELECT * FROM krl_schedule WHERE arr_time >= '$nowhour' AND dep_time <= '$nowhour' AND sts='Bekasi' AND sts_to!='Bekasi'

我的表是 krl_schedule

=======================================================================================
id  |   train_no  |  sts_from  |    sts    |  sts_to   |   arr_time   |    dep_time   |
=======================================================================================
1   |   100A      |  Cikarang  |  Cibitung |  Gambir   |   06:20:00   |   06:31:00    |
2   |   100B      |  Cikarang  |  Bekasi   |  Manggarai|   07:10:00   |   07:29:00    |
3   |   200A      |  Cikarang  |  Tambun   |  Bekasi   |   07:20:00   |   07:32:00    |
4   |   200B      |  Cikarang  |  Bekasi   |  Kota     |   08:20:00   |   08:31:00    |

我希望结果是 id 为 2 的数据,如果$nowhour介于两者arr_time之间dep_time

2   |   100B      |  Cikarang  |  Bekasi   |  Manggarai|   07:10:00   |   07:29:00    |

我的目的是找出这列火车在07:20:00在勿加泗站停靠。

标签: mysql

解决方案


您可以使用以下内容BETWEEN

SELECT * 
FROM krl_schedule 
WHERE '$nowhour' BETWEEN arr_time AND dep_time 
  AND sts = 'Bekasi' 
  AND sts_to <> 'Bekasi'

... 或者

SELECT * 
FROM krl_schedule 
WHERE arr_time <= '$nowhour' AND dep_time >= '$nowhour'
  AND sts = 'Bekasi' 
  AND sts_to <> 'Bekasi'

dbfiddle.uk 上的演示


推荐阅读