簡體   English   中英

Mysql select 兩列之間的當前時間

[英]Mysql select current time between two columns

我有一個時間表表,其中有兩列time_fromtime_to ,其值采用 24 小時格式,例如 from 和 to 是晚上 9 點到凌晨 1 點,而不是 time_from 和 time_to 分別為 21 和 1。

現在我需要檢查當前時間是否介於這兩列之間

如果現在時間是晚上 11 點,我應該得到在晚上 11 點之間的列值是 23 和 1 的列

CREATE TABLE `ace_rp_inventory_locations_night` (
 `id` int(11)  NOT NULL,
 `name` varchar(255) DEFAULT NULL,
 `time_from` varchar(255) DEFAULT NULL,
 `time_to` varchar(255) DEFAULT NULL
 ); 
 
INSERT INTO ace_rp_inventory_locations_night (id, name, time_from, time_to)
VALUES (1, 'test', '23','1'); 

請檢查 sql 小提琴

此查詢有效

SELECT *
FROM `ace_rp_inventory_locations_night`
WHERE time_from_1 <= '23'
AND time_to_1 >= '23'

如果時間在 24 小時范圍內,即 20 和 24,但凌晨 1 點的值為 1,並且上述查詢不起作用,因為 23 和 1 沒有完全滿足條件,我正在用當前時間檢查它,所以如果時間是凌晨 2 點我必須在查詢中傳遞 2。

如何使用當前時間並使用它在兩列之間進行查詢?

您可以使用:

SELECT *
FROM `ace_rp_inventory_locations_night`
WHERE (time_from_1 <= time_to_1 AND 23 between time_from_1 and time_to_1) OR
      (time_to_1 > time_to_1 AND 23 NOT BETWEEN time_from_1 and time_to_1);

注意:這使用BETWEEN影響范圍端點的處理方式。 您的問題沒有指定要做什么。 您可能應該明確說明不平等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM