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

किसी दिए गए समय क्षेत्र में टाइमस्टैम्प फ़ील्ड को ISO 8601 स्ट्रिंग में कैसे बदलें?

आप GUC पैरामीटर के साथ खेल सकते हैं datestyle और timezone आप जो चाहते हैं उसे पाने के लिए एक समारोह के अंदर। यहां एक उदाहरण दिया गया है (हालांकि, यह माइक्रोसेकंड लौटाता है, इसलिए शायद आपको इसे थोड़ा ट्यून करना होगा):

create or replace function timestamp_iso8601(ts timestamptz, tz text) returns text as $$
declare
  res text;
begin
  set datestyle = 'ISO';
  perform set_config('timezone', tz, true);
  res := ts::timestamptz(3)::text;
  reset datestyle;
  reset timezone;
  return replace(res, ' ', 'T') || ':00';
end;
$$ language plpgsql volatile;

परिणाम:

test=# select timestamp_iso8601(now()::timestamptz, 'Europe/Moscow');
       timestamp_iso8601
-------------------------------
 2017-07-12T08:56:58.692985+03:00

test=# select timestamp_iso8601(now()::timestamptz, 'Pacific/Auckland');
       timestamp_iso8601
-------------------------------
 2017-07-12T17:59:05.863483+12:00
(1 row)

अद्यतन:संपादित। आप timestamptz(3) . का उपयोग कर सकते हैं , परिशुद्धता . निर्दिष्ट करते हुए (डिफ़ॉल्ट रूप से, यह माइक्रोसेकंड के साथ जाएगा, जबकि 3 केवल मिलीसेकंड रखेगा)। वैकल्पिक रूप से, आप उपयोग कर सकते हैं res := to_char(ts::timestamptz, 'IYYY-MM-DDT HH24:MI:SS:MSOF'); इसके बजाय ::timestamptz(3)::text रूपांतरण श्रृंखला, और इस मामले में (3) जरूरत नहीं होगी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक सरणी का Nth तत्व प्राप्त करें जो string_to_array () फ़ंक्शन से लौटाता है

  2. PostgreSQL में pgAdmin के माध्यम से संबंध लिंक बनाना

  3. विंडोज़ पर साइकोपग इंस्टालेशन

  4. Django:क्वेरी समूह महीने के अनुसार

  5. Postgresql में SQL सर्वर से 'सामान' और 'xml पथ के लिए ('')'