2010-05-25 8 views
12

मैं (मैं कई वर्षों के लिए एमएस एसक्यूएल उपयोग किया गया है) PostgreSQL के लिए नया हूँ और एक संख्यात्मक स्तंभ जो करने के लिए सेकंड में एक समय होता है बदलने की आवश्यकता एचएच: एमएम: एसएस प्रारूप।PostgreSQL - कैसे एचएच पर संख्यात्मक क्षेत्र में सेकंड कन्वर्ट करने के लिए: MM: SS

मैं Google पर और पाया कि to_char(interval '1000s', 'HH24:MI:SS') इसलिए मैं अपने क्षेत्र के नाम के साथ इस का उपयोग करने का प्रयास कर रहा हूँ काम करता है:

to_char(fieldname, 'HH24:MI:SS') एक त्रुटि cannot use "S" and "PL"/"MI"/"SG"/"PR" together

to_char(fieldname::interval, 'HH24:MI:SS') एक त्रुटि cannot cast type numeric to interval

किसी को भी मुझे दिखा सकते हैं देता है देता है मैं गलत कहां जा रहा हूँ? एम एम:

+0

'fieldname' एक पूर्णांक है? आगे, यदि आपके पास एक दिन से अधिक अंतराल है तो आप किस आउटपुट की अपेक्षा करते हैं? – leonbloy

+0

@leonbloy: 'HH24' इसके नाम के बावजूद 24 से आगे जा सकता है। – Quassnoi

+0

@Quassnoi: सही। बस आश्चर्य हुआ कि क्या पोस्टर चाहता था। – leonbloy

उत्तर

22
SELECT TO_CHAR('1000 second'::interval, 'HH24:MI:SS') 

या, आपके मामले में

SELECT TO_CHAR((mycolumn || ' second')::interval, 'HH24:MI:SS') 
FROM mytable 
+0

पर देख रहा हूँ है यह '(... || ...)' मुझे याद आ रहा था। बहुत धन्यवाद! – Shevek

+2

या 'mycolumn *' 1 सेकंड ':: अंतराल' जो पाठ प्रारूप को बार-बार स्वरूपित करने से बचेंगे (हालांकि यह इस मामले में अधिक व्यावहारिक अंतर नहीं करता है) – araqnid

+0

@Quassnoi यह संभव है अगर मुझे 1:20 मिल जाएगा : 30s तो 80:30 में तब्दील कृपया मुझे –

9

सेकंड एचएच में बदलने के लिए एस एस

SELECT 120 * interval '1 sec'; 

00:02:00

मिनट बदलने के लिए आप मिल जाएगा करने के लिए HH: MM: SS

SELECT 120 * interval '1 min'; 

आप मिल जाएगा 02:00:00

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