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

PostgreSQL में v1 UUID से टाइमस्टैम्प कास्ट करें या निकालें

मैंने अपने डेटाबेस से यूयूआईडी के साथ इसका परीक्षण किया है और ऐसा लगता है कि बिना हस्ताक्षर किए गए बड़े अक्षरों के बिना भी यह बहुत अच्छी तरह से काम करता है।

CREATE FUNCTION uuid_timestamp(id uuid) RETURNS timestamptz AS $$
  select TIMESTAMP WITH TIME ZONE 'epoch' +
      (((('x' || lpad(split_part(id::text, '-', 1), 16, '0'))::bit(64)::bigint) +
      (('x' || lpad(split_part(id::text, '-', 2), 16, '0'))::bit(64)::bigint << 32) +
      ((('x' || lpad(split_part(id::text, '-', 3), 16, '0'))::bit(64)::bigint&4095) << 48) - 122192928000000000) / 10000000 ) * INTERVAL '1 second';    
$$ LANGUAGE SQL
  IMMUTABLE
  RETURNS NULL ON NULL INPUT;

एक V1 uuid जिसे मैंने 2099 के भविष्य में बनाया था!

select uuid_timestamp('6d248400-65b7-1243-a57a-14109fec739e');
uuid_timestamp     
------------------------
 2099-08-01 11:30:00-07
(1 row)


  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. PostgreSQL स्थापना के बाइनरी प्रारूप पर pg_repack एक्सटेंशन संकलित करना

  3. PostgreSQL के EXPLAIN ANALYZE का MySQL समतुल्य क्या है?

  4. टॉमकैट संदर्भ.एक्सएमएल में डीबी एडब्ल्यूएस रहस्य कैसे पास करें?

  5. PostgreSQL:PostgreSQL डेटाबेस पर किसी उपयोगकर्ता को सभी अनुमतियां दें