久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在 mysql 和 php 中尋找空閑的時(shí)間塊?

Finding free blocks of time in mysql and php?(在 mysql 和 php 中尋找空閑的時(shí)間塊?)
本文介紹了在 mysql 和 php 中尋找空閑的時(shí)間塊?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

限時(shí)送ChatGPT賬號(hào)..

我在 mysql 中有一個(gè)這樣的表:

I have a table in mysql like this:

+------------+------------+------------+------------+ 
|     date   |   user_id  | start_hour | end_hour   | 
+------------+------------+------------+------------+ 
| 2010-12-15 |         20 | 08:00:00   | 08:15:00   | 
| 2010-12-15 |         20 | 14:00:00   | 14:30:00   | 
| 2010-12-15 |         20 | 17:00:00   | 17:45:00   | 
+------------+------------+------------+------------+ 

我嘗試提取用戶時(shí)間的時(shí)間范圍我在此處找到并舉例,但我無法在幾個(gè)小時(shí)內(nèi)完成這項(xiàng)工作

and I try to extract the time range of the time of users I found and example here, but I can't make that work on hours

我試過查詢:

 $sql="
SELECT a.end_hour AS 'Available From', Min(b.start_hour) AS 'To' 

FROM ( 
SELECT  0 as date, '08:00:00' as start_hour,'08:00:00' as end_hour 
UNION SELECT date, start_hour, end_hour FROM table
) 

AS a JOIN 
( SELECT  date, start_hour, end_hour  FROM table 
UNION SELECT 0,  '21:00:00' as start_hour, '22:00:00' as end_hour
) AS b ON

a.date=b.date AND  a.user_id=b.user_id AND a.end_hour < b.start_hour WHERE  
a.date='$date'  AND a.user_id='$user_id' GROUP BY a.end_hour 
HAVING a.end_hour < Min(b.start_hour);"; 

我需要?jiǎng)?chuàng)建一個(gè)從 08:00 到 21:00 的范圍,其中包含約會(huì)之間的空閑塊像這樣:

I need to create a range since 08:00 to 21:00 with the free blocks between the appointments like this:

free time
08:15:00 to 14:00:00
14:30:00 to 17:00:00
17:45:00 to 21:00:00

推薦答案

試試這個(gè)查詢

SELECT
  a.id,
  a.start_hour,
  a.end_hour,
  TIMEDIFF(la.start_hour, a.end_hour) as `Free Time`
FROM appointment as a
  LEFT JOIN(SELECT * FROM appointment LIMIT 1,18446744073709551615) AS la
    ON la.id = a.id + 1
  LEFT JOIN (SELECT * FROM appointment) AS ra ON a.id = ra.id

這將顯示這些結(jié)果

+---------------------------------------------+
| id | start_hour BY | end_hour   | Free Time |
|----+---------------|------------------------|
|  1 |   08:00:00    |  08:15:00  | 05:45:00  |
|  2 |   14:00:00    |  14:30:00  | 02:30:00  |
|  3 |   17:00:00    |  17:45:00  | 03:15:00  |
|  4 |   21:00:00    |  21:00:00  | (NULL)    |
+--------------------+------------------------+ 

此外,您必須在表中包含 21:00:00,否則您將無法獲得上次時(shí)差.我在表中輸入了 21:00:00 作為開始和結(jié)束日期.

Also you must have the 21:00:00 in the table or you wont be able to get the last time difference. i entered 21:00:00 as start and end date in the table.

這是修改后的查詢

SELECT
  a.id,
  a.end_hour AS `Free time Start`,
  IFNULL(la.start_hour,a.end_hour) AS `Free Time End`,
  IFNULL(TIMEDIFF(la.start_hour, a.end_hour),'00:00:00') AS `Total Free Time`
FROM appointment AS a
  LEFT JOIN (SELECT * FROM appointment LIMIT 1,18446744073709551615) AS la
    ON la.id = (SELECT MIN(id) FROM appointment where id > a.id LIMIT 1)      

結(jié)果是

+--------------------------------------------------------+
| id | Free time Start | Free Time End | Total Free Time |
|----+-----------------|---------------------------------|
|  1 |   08:15:00      | 14:00:00      |    05:45:00     |
|  2 |   14:30:00      | 17:00:00      |    02:30:00     |
|  3 |   17:45:00      | 21:00:00      |    03:15:00     |
|  4 |   21:00:00      | 21:00:00      |    00:00:00     |
+----------------------+---------------------------------+  

從這個(gè)查詢中學(xué)習(xí)的要點(diǎn)是

The points to learn from this query are

  1. Timediff 函數(shù)的使用.timediff('結(jié)束時(shí)間','開始時(shí)間')
  2. 用大號(hào)加入
  3. 避免使用長(zhǎng)偏移量連接的第一條記錄,并限制從 1 而不是零開始
  4. IFNULL 用法 ifnull('if here come null','select this then')

這篇關(guān)于在 mysql 和 php 中尋找空閑的時(shí)間塊?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Add programmatically a downloadable file to Woocommerce products(以編程方式將可下載文件添加到 Woocommerce 產(chǎn)品)
Get today#39;s total orders count for each product in Woocommerce(獲取今天 Woocommerce 中每種產(chǎn)品的總訂單數(shù))
Add Custom registration fields in WooCommerce and phone field validation issue(在 WooCommerce 和電話字段驗(yàn)證問題中添加自定義注冊(cè)字段)
Add a select field that will change price in Woocommerce simple products(在 Woocommerce 簡(jiǎn)單產(chǎn)品中添加一個(gè)將更改價(jià)格的選擇字段)
Add custom columns to admin products list in WooCommerce 3(在 WooCommerce 3 中將自定義列添加到管理產(chǎn)品列表)
Customizing checkout quot;Place Orderquot; button output html(自定義結(jié)帳“下訂單按鈕輸出html)
主站蜘蛛池模板: 91精品午夜窝窝看片 | 91在线精品视频 | 中文字幕一区二区三区乱码图片 | 91亚洲精品国偷拍自产在线观看 | 欧美一区二区成人 | 欧美日韩精品在线一区 | av久久| 免费在线播放黄色 | 日韩免费电影 | 中文字幕亚洲视频 | 在线观看成人精品 | 欧美成人a∨高清免费观看 91伊人 | 国产精品久久免费观看 | 欧美淫片 | 色资源av| 国产精品久久久久久高潮 | 欧美日韩中文国产一区发布 | 欧美中文字幕一区二区 | 九九综合 | 欧美国产一区二区 | h视频在线观看免费 | 国产精品一区久久久 | 日韩精品免费 | 欧美高清视频一区 | 日本一区二区不卡 | 日本特黄a级高清免费大片 特黄色一级毛片 | 成人av一区二区三区 | 美女视频h | 免费性视频 | 国产精品久久精品 | 国产精品久久久久久妇女6080 | 日韩一区二区三区视频 | www.日日操 | 免费观看一级毛片 | 97视频免费 | 97精品超碰一区二区三区 | 中文在线а√在线8 | 欧美操操操 | 精品一区二区三 | 国产精品18久久久久久久 | 国产精品成人久久久久 |