Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL - ब्रेक को छोड़कर दो दिनांक-समय के बीच शुद्ध समय अंतर की गणना करें?

समय के दौरान होने वाले अपने सभी विरामों का योग करें, और फिर timediff/time_to_sec फ़ंक्शन के परिणाम में घटाएं

SELECT TIME_TO_SEC(TIMEDIFF('17:00:00', '09:00:00')) -- 28800

SELECT TIME_TO_SEC(TIMEDIFF('12:30:00', '12:00:00')) -- 1800
SELECT TIME_TO_SEC(TIMEDIFF('10:30:00', '10:15:00')) -- 900

-- 26100

इस संरचना को मानते हुए:

CREATE TABLE work_unit (
 id INT NOT NULL,
 initial_time TIME,
 final_time TIME
)
CREATE TABLE break (
 id INT NOT NULL,
 initial_time TIME,
 final_time TIME
)
INSERT work_unit VALUES (1, '09:00:00', '17:00:00')
INSERT break VALUES (1, '10:00:00', '10:15:00')
INSERT break VALUES (2, '12:00:00', '12:30:00')

आप अगली क्वेरी के साथ इसकी गणना कर सकते हैं:

SELECT *, TIME_TO_SEC(TIMEDIFF(final_time, initial_time)) total_time
, (SELECT SUM(
 TIME_TO_SEC(TIMEDIFF(b.final_time, b.initial_time)))
  FROM break b 
  WHERE (b.initial_time BETWEEN work_unit.initial_time AND work_unit.final_time) OR (b.final_time BETWEEN work_unit.initial_time AND work_unit.final_time)
 ) breaks 
FROM work_unit



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यदि मैं एक MySQL कॉलम को पहले उसकी अनुक्रमणिका को छोड़े बिना छोड़ दूं तो क्या होगा?

  2. नेस्टेड सेट मॉडल, श्रेणियों में आइटम गिनें

  3. समूह फ़ंक्शन का अमान्य उपयोग देने वाली सरल SQL क्वेरी

  4. मैसकल को स्वचालित रूप से पुनरारंभ करें जब ईसी 2 माइक्रो इंस्टेंस पर उबंटू स्मृति से बाहर होने पर इसे मारता है

  5. mysql डंप - कुछ टेबल डेटा को बाहर करें