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

PostgreSQL में दो टाइमस्टैम्प के बीच अंतर की गणना कैसे करें

समस्या:

आपके पास timestamp . प्रकार के दो कॉलम हैं और आप उनके बीच के अंतर की गणना करना चाहते हैं।

उदाहरण:

travel तालिका, तीन कॉलम हैं:id , departure , और arrival . आप arrival . के बीच अंतर की गणना करना चाहेंगे और departure

travel तालिका इस तरह दिखती है:

आईडी प्रस्थान आगमन
1 2018-03-25 12:00:00 2018-04-05 07:30:00
2 2019-09-12 15:50:00 2019-10-23 10:30:30
3 2018-07-14 16:15:00 2018-07-14 20:40:30
4 2018-01-05 08:35:00 2019-01-08 14:00:00

समाधान 1 (दिन, घंटे, मिनट और सेकंड में अंतर):

SELECT
  id,
  departure,
  arrival,
  arrival - departure AS difference
FROM travel;

नतीजा यह है:

आईडी प्रस्थान आगमन अंतर
1 2018-03-25 12:00:00 2018-04-05 07:30:00 10 दिन 19:30:00
2 2019-09-12 15:50:00 2019-10-23 10:30:30 40 दिन 18:40:30
3 2018-07-14 16:15:00 2018-07-14 20:40:30 04:25:30
4 2018-01-05 08:35:00 2019-01-08 14:00:00 368 दिन 05:25:00

चर्चा:

PostgreSQL में टाइमस्टैम्प के बीच अंतर की गणना करने के लिए, बस प्रारंभ टाइमस्टैम्प को अंत टाइमस्टैम्प से घटाएं। यहाँ, यह होगा arrival - departure . अंतर interval . प्रकार का होगा , जिसका अर्थ है कि आप इसे दिनों, घंटों, मिनटों और सेकंडों में देखेंगे।

समाधान 2 (वर्षों, महीनों, दिनों, घंटों, मिनटों और सेकंड में अंतर):

SELECT
  id,
  departure,
  arrival,
  AGE(arrival, departure) AS difference
FROM travel;

नतीजा यह है:

आईडी प्रस्थान आगमन अंतर
1 2018-03-25 12:00:00 2018-04-05 07:30:00 10 दिन 19:30:00
2 2019-09-12 15:50:00 2019-10-23 10:30:30 1 सोम 10 दिन 18:40:30
3 2018-07-14 16:15:00 2018-07-14 20:40:30 04:25:30
4 2018-01-05 08:35:00 2019-01-08 14:00:00 1 वर्ष 3 दिन 05:25:00

चर्चा:

यदि आप वर्षों, महीनों, दिनों, घंटों, मिनटों और सेकंड में अंतर प्राप्त करना चाहते हैं, तो AGE(end, start) का उपयोग करें समारोह। यहाँ, यह होगा AGE(arrival, departure) . इस समाधान में, परिणामी स्तंभ भी interval . प्रकार का होता है ।

समाधान 3 (सेकंड में अंतर):

SELECT
  id,
  departure,
  arrival,
  EXTRACT(EPOCH FROM (arrival - departure)) AS difference
FROM travel;
आईडी प्रस्थान आगमन अंतर
1 2018-03-25 12:00:00 2018-04-05 07:30:00 934200
2 2019-09-12 15:50:00 2019-10-23 10:30:30 3523230
3 2018-07-14 16:15:00 2018-07-14 20:40:30 15930
4 2018-01-05 08:35:00 2019-01-08 14:00:00 31814700

चर्चा:

यदि आप PostgreSQL में सेकंड में टाइमस्टैम्प के बीच अंतर की गणना करना चाहते हैं, तो एक तारीख को दूसरी से घटाएं (यहां:arrival - departure ) फिर EPOCH extract निकालें अंतर से इसे सेकंड में प्राप्त करने के लिए। यहां EXTRACT() के बारे में अधिक जानकारी दी गई है समारोह।


No

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्तंभों के लिए PostgreSQL पंक्ति

  2. PL/pgSQL अनाम कोड ब्लॉक

  3. एक चयन समूह डालें:अभिव्यक्ति त्रुटि से अधिक लक्ष्य कॉलम

  4. Psycopg2 में एक पैरामीटर के रूप में टेबल का नाम पास करना

  5. तार्किक प्रतिकृति समाधानों की प्रदर्शन सीमाएँ