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

इंटरवल का सबसे बड़ा रिज़ॉल्यूशन कैसे निर्धारित करें?

प्रश्न 100% स्पष्ट नहीं है इसलिए उत्तर ठीक वही हो सकता है या नहीं जो आप खोज रहे हैं, लेकिन...

एक justify_interval() है फ़ंक्शन, जिसे आप देखना चाहेंगे।

test=# select justify_interval(INTERVAL '100 days 3 seconds');
    justify_interval     
-------------------------
 3 mons 10 days 00:00:03
(1 row)

test=# select justify_interval(TIME '20:05' - TIME '12:01:01');
 justify_interval 
------------------
 08:03:59
(1 row)

test=# select justify_interval(AGE(NOW(), NOW() - INTERVAL '1 MONTH'));
 justify_interval 
------------------
 1 mon
(1 row)

वहाँ के लिए वर्ष, फिर महीना, फिर दिन, आदि निकालें जब तक कि आप एक गैर-शून्य उत्तर के साथ नहीं आते:

test=# select extract('mon' from interval '3 mons 10 days 00:00:03');
 date_part 
-----------
         3

अपने अन्य प्रश्न टिप्पणियों में दें:

create function max_res(interval) returns interval as $$
select case
       when extract('year' from justify_interval($1)) > 0 or
            extract('mon' from justify_interval($1)) > 0 or
            extract('day' from justify_interval($1)) > 0
       then '1 day'
       when extract('hour' from justify_interval($1)) > 0
       then '1 hour'
       when ...
       end;
$$ language sql immutable strict;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres . में एन्क्रिप्टेड फ़ील्ड खोजना

  2. PostgreSQL पर एक सशर्त अद्वितीय अनुक्रमणिका कैसे जोड़ें

  3. तालिका के अंदर JSONB डेटा प्रकार और PostgreSQL JDBC ड्राइवर का उपयोग करके JSON ऑब्जेक्ट को PostgreSQL में कैसे संग्रहीत करें?

  4. Postgresql को sqlalchemy से जोड़ना

  5. बल्क इंसर्ट/अपडेट को पोस्टग्रेज करता है जो इंजेक्शन-सुरक्षित है। शायद एक फ़ंक्शन जो एक सरणी लेता है?