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

mysql में डेटाटाइम पंक्ति का समय डेल्टा कैसे खोजें?

MySQL में, यह काफी आसान है, क्योंकि आप प्रत्येक पंक्ति के लिए सेंसर समय को स्टोर करने के लिए एक चर का उपयोग कर सकते हैं, फिर समय अंतर की गणना करते समय अगली पंक्ति में इसका उपयोग कर सकते हैं। यह तकनीक एमएस एसक्यूएल में काम नहीं करती है क्योंकि यह एक चयन में चर को असाइन करने की अनुमति नहीं देती है जो डेटा भी लौटा रही है। यह शायद SQL के अन्य संस्करणों में भी काम नहीं करेगा। सामान्य तरीका यह होगा कि एक ऑफ़सेट जॉइन तैयार किया जाए, जिससे जॉइन पिछली पंक्ति से मान लौटाता है, लेकिन यह काफी धीमा हो सकता है।

उस ने कहा, यहाँ इसे MySQL में करने का एक तरीका है:

SELECT 
    sensor_time,
    time_diff,
    TIME_TO_SEC(time_diff) > 30 AS alarm
FROM (
    SELECT
        sensor_time,
        TIMEDIFF(sensor_time, @prev_sensor_time) AS time_diff,
        @prev_sensor_time := sensor_time AS prev_sensor_time
    FROM sensor_table,
    (SELECT @prev_sensor_time := NULL) AS vars
    ORDER BY sensor_time ASC
) AS tmp;

+---------------------+-----------+-------+
| sensor_time         | time_diff | alarm |
+---------------------+-----------+-------+
| 2009-09-28 07:08:12 | NULL      |  NULL |
| 2009-09-28 07:08:40 | 00:00:28  |     0 |
| 2009-09-28 07:09:10 | 00:00:30  |     0 |
| 2009-09-28 07:09:40 | 00:00:30  |     0 |
| 2009-09-28 07:10:10 | 00:00:30  |     0 |
| 2009-09-28 07:10:40 | 00:00:30  |     0 |
| 2009-09-28 07:41:10 | 00:30:30  |     1 |
| 2009-09-28 07:41:40 | 00:00:30  |     0 |
| 2009-09-28 07:42:10 | 00:00:30  |     0 |
| 2009-09-28 07:42:40 | 00:00:30  |     0 |
+---------------------+-----------+-------+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं इस डेटा विश्लेषण की गति कैसे बढ़ाऊं?

  2. php चेतावनी cpanel द्वारा वेबसाइट फ़ोल्डर में लॉग इन करते समय

  3. एकाधिक कॉलम चुनने के लिए केस का उपयोग कर MySQL क्वेरी

  4. कैलेंडर तालिका का उपयोग करके दिनांक सीमा क्वेरी में अनुपलब्ध अंतरालों को भरें

  5. एक MySQL innodb डेटाबेस को मेमोरी में लोड करें