पोस्टग्रेएसक्यूएल में, टाइमस्टैम्प का स्वरूपण भंडारण से स्वतंत्र है। एक ही जवाब to_char
का उपयोग करें और आप इस तरह, जैसे ही आप इसकी आवश्यकता पर की जरूरत है जो कुछ भी प्रारूप करने के लिए टाइमस्टैम्प स्वरूपित करने के लिए है:
बदलें PostgreSQL टाइमस्टैम्प:
select to_char(current_timestamp, 'yyyy-MM-dd HH24:MI:SS.MS');
select to_timestamp('2012-10-11 12:13:14.123',
'yyyy-MM-dd HH24:MI:SS.MS')::timestamp;
लेकिन आप डिफ़ॉल्ट स्वरूपण सेट करना होगा अगर विश्व स्तर पर प्रारूप:
, आपके समय क्षेत्र पर एक नजर डालें एक SQL क्वेरी के रूप में इस चलाएँ:
show timezone
Result: "US/Eastern"
तो जब आप CURRENT_TIMESTAMP बाहर प्रिंट कर रहे हैं, तो आप इस देखें:
select current_timestamp
Result: 2012-10-23 20:58:35.422282-04
-04
अंत में यूटीसी के लिए अपना समय क्षेत्र सापेक्ष है।
set timezone = 'US/Pacific'
तब:: आप के साथ अपने समय क्षेत्र बदलने के कर सकते हैं
select current_timestamp
Result: 2012-10-23 18:00:38.773296-07
तो वहाँ -07
दिखाई देता है तो हम इसका मतलब है प्रशांत यूटीसी से 7 घंटे की दूरी पर है। मैं उस भयानक टाइमज़ोन को कैसे दूर कर सकता हूं? एक तरह से सिर्फ एक मेज बनाने के लिए है, यह समय क्षेत्र के बिना एक टाइमस्टैम्प करने के लिए चूक:
CREATE TABLE worse_than_fail_table
(
mykey INT unique not null,
fail_date TIMESTAMP not null
);
तो अगर आपको लगता है कि मेज पर एक टाइमस्टैम्प जोड़ सकते हैं और से यह
select fail_date from worse_than_fail_table
Result: 2012-10-23 21:09:39.335146
Yay, पर कोई समय क्षेत्र चुनें समाप्त। लेकिन आप डिफ़ॉल्ट रूप से टाइमस्टैम्प कैसे दिखाते हैं, इस पर अधिक नियंत्रण चाहते हैं!
CREATE TABLE moo (
key int PRIMARY KEY,
boo text NOT NULL DEFAULT TO_CHAR(CURRENT_TIMESTAMP,'YYYYMM')
);
यह एक पाठ क्षेत्र जो आप कैसे यह डिफ़ॉल्ट रूप से दिखाई देता है जब आप एक select somecolumns from sometable
कर पर अधिक नियंत्रण देता है: आप कुछ इस तरह कर सकता है। आप टाइमस्टैम्प के एक स्ट्रिंग डाल सकता नोटिस:
select current_timestamp::timestamp
Result: 2012-10-23 21:18:05.107047
आप इस तरह समय क्षेत्र से छुटकारा पा सकते:
select current_timestamp at time zone 'UTC'
Result: "2012-10-24 01:40:10.543251"
select '2012-10-11 12:13:14.56789'::timestamp
Result: 2012-10-11 12:13:14.56789
आप जो समय क्षेत्र को हटा timestamp
करने के लिए एक CURRENT_TIMESTAMP डाली सकता है
लेकिन यदि आप वास्तव में टाइमज़ोन वापस चाहते हैं तो आप यह कर सकते हैं:
select current_timestamp::timestamp with time zone
Result: 2012-10-23 21:20:21.256478-04
आप बाहर झटका कर सकते हैं कि आप क्या निकालने के साथ हैं:
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 20
और यह कुरूपता:
SELECT TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-05' AT TIME ZONE 'EST';
Result: 2001-02-16 20:38:40
जो क्लाइंट अनुप्रयोग
प्रयोग कर रहे हैं? –
php में प्रोटोटाइप, लगभग 6 mo –
में node.js पर जाने के बाद यह पोस्टग्रेस सेटिंग नहीं, एक PHP सेटिंग बदलने के लिए होगा। –