查找當前時間是否落入 MySQL 中的任何給定範圍

用戶16256930

我有一張看起來像這樣的桌子。

ID 營業時間 其他
1 [“09:00-14:30”、“19:00-21:30”] jj
2 [“10:00-14:00”] kk
3 [“01:00-04:00”、“05:00-08:00”、“10:00-15:00”、“16:00-00:00”] pp

我想知道目前(NOW())商店是否開放,即它是否屬於特定日期給出的範圍之一。如何在 SQL 查詢中執行此操作?我試圖通過類似的東西來實現它

SELECT * FROM data
WHERE TIME(NOW) BETWEEN one of the ranges specified in open_hours;
他們不是
SELECT test.id, 
       CAST(SUBSTRING_INDEX(jsontable.timerange, '-', 1) AS TIME) timestart, 
       CAST(SUBSTRING_INDEX(jsontable.timerange, '-', -1) AS TIME) timeend,
       test.other
FROM test
CROSS JOIN JSON_TABLE(test.open_hours,
                      '$[*]' COLUMNS (timerange VARCHAR(255) PATH '$')) jsontable
HAVING CURRENT_TIME BETWEEN timestart AND timeend;

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=30b7dfac8d89b774a7ddb29f890889d9

附註。我強烈建議您遵循nbk的建議並規範化數據。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

當時間戳不正確時,在python中獲取給定時間範圍的數據

給定部分日期時間,解析日期時間範圍或持續時間

如何檢查 Google 表格中的任何時間範圍是否相互重疊

當pythons xarray模塊中每個像素的範圍不同時,是否可以按時間範圍選擇數據集

在javascript - 時間表中生成特定範圍內和給定條件的隨機數

選擇一周中給定日期的小時範圍

如何在 Python 中查找日期時間範圍

MySql 查詢範圍之間的價格

檢查 Pandas 日期時間列是否在一定時間範圍內

對 E(startTime,endTime) 的排序列表進行二分搜索,以查找與給定時間範圍 (t1,t2) 匹配的所有 E

如何確定一個數字是否在範圍列表中?

如何編寫程序打印出 1 和給定 number 之間的所有正整數,並在範圍的兩端交替?

是否有一種算法可以為給定範圍內的每個條目找到最短的二進製表示?

MySQL 中具有特定範圍的 MAX() 的語法

在MySQL / PostgreSQL中查找落入经度/纬度组合且度数为N的多边形

如何在 Ansible 中為當前時間戳添加時間?

循環遍歷列表以獲取python中給定範圍的最大總和

awk - 使用另一個文件的行範圍替換不同文件中兩個字符串之間的任何第 n 個 X

如何從kotlin中的設備獲取當前時間?

如何在可變打字稿中動態設置當前時間

打印給定範圍內的 BST 密鑰

如何選擇某些日期範圍在給定範圍內的日期?

使用 Python 查找在給定日期範圍內具有最小值的列名列表

如何以時間戳/日期時間格式獲取 Scala 中的當前時間,以便將其存儲在 PG 表中

在此區域中按當前時間查找 ZoneId

日期時間年份超出範圍

禁用日期時間範圍選擇器中的所有日期

LINQ 查詢日期時間範圍在集合項中重疊

Splunk Enterprise:排除某些時間範圍以獲得更大的時間範圍