如何在时间到达和离开列之间选择数据?

时间:2019-11-28 08:01:31

标签: mysql

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

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

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    |

我想如果$nowhourarr_timedep_time之间,则结果是ID为2的数据

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

我的目的是找出这趟火车在07:20:00在 Bekasi 站下车。

2 个答案:

答案 0 :(得分:2)

您可以使用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'

demo on dbfiddle.uk

答案 1 :(得分:1)

您可以使用BETWEEN函数使用此代码,其中07:20:00是您的$ nowhour

SELECT * 
FROM 
 krl_schedule 
WHERE '07:20:00' BETWEEN arr_time AND dep_time 
AND sts = 'Bekasi' 
AND sts_to != 'Bekasi' 

所以您的最终查询将是这样

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