2012-04-18 21 views
30

millisecond भाग को मैं कैसे हटा सकता/सकती हूं, second भाग timestamp w/o timezone से भी हटा दिया गया है?टाइमस्टैम्प से मिलीसेकंद भाग को छोड़ दें

SELECT now()::timestamp(0); 

तरह @karlgold टिप्पणी की, इस राउंड करने के लिए पूर्ण सेकंड, और अंशों संग्रहीत नहीं हैं, तो आप इस डेटा प्रकार के साथ काम कर रखें: timestamp(0) या timestamptz(0) को

उत्तर

68

कास्ट यह आंशिक सेकंड दूर करने के लिए।

अधिक विशिष्ट आवश्यकताओं के लिए date_trunc() का उपयोग करें।

SELECT date_trunc('second', now()::timestamp); 

यह ट्रंकेटस (सेकंड अपरिवर्तित छोड़ देता है)। आगे हेरफेर आंशिक सेकंड फिर से पेश कर सकते हैं।

SELECT date_trunc('minute', now())::timestamp(0); 

लेकिन ध्यान रखें कि एक स्तंभ या एक अलग डेटा प्रकार के चर को यह मान निर्दिष्ट में हो सकता है हो सकता है: इस समय रूप में अच्छी तरह दूसरे भाग को हटाने -

बेशक

, आप दोनों को जोड़ सकते हैं एक और असाइनमेंट कास्ट

+10

ध्यान दें कि टाइमस्टैम्प (0) और टाइमस्टैम्पेट (0) छंटनी के बजाए गोल करेंगे। यदि आप शेष टाइमस्टैम्प को संरक्षित करना चाहते हैं तो date_trunc का उपयोग करें। – karlgold

+0

@karlold बहुत महत्वपूर्ण टिप्पणी आपको धन्यवाद – Brettski

+0

@saul: आपका सुझाया गया संपादन बंद कर दिया गया था, लेकिन आप सही थे। मैंने आपकी स्पष्टीकरण लागू की, धन्यवाद –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^