2010-03-13 12 views
26

मैं MySQL में सेकेंड में DATETIME का मूल्य प्राप्त करने के लिए (googling, mysql संदर्भ मैनुअल पढ़ने) को खोजने में सक्षम नहीं था।MYSQL - सेकंडटाइम से सेकंड

मुझे डेटाटाइम से सेकंड निकालने का मतलब नहीं है, लेकिन इसे सेकंड में परिवर्तित करना है।

select UNIX_TIMESTAMP(your_datetime_field) 
from your_table 
where ... 

:

उत्तर

27

आप DATETIME मूल्यों के बीच का अंतर है चाहते हैं, TIMESTAMPDIFF का उपयोग करें:

TIMESTAMPDIFF (इकाई, datetime_expr1, datetime_expr2)

रिटर्न datetime_expr2 – datetime_expr1, जहां datetime_expr1 और datetime_expr2 तारीख या datetime हैं भाव। एक अभिव्यक्ति एक तिथि हो सकती है और दूसरा डेटाटाइम हो सकता है; एक दिनांक मूल्य को समय-समय पर '00: 00: 00 'समय वाले डेटाटाइम के रूप में माना जाता है जहां आवश्यक हो। परिणाम के लिए इकाई (एक पूर्णांक) इकाई तर्क द्वारा दिया जाता है। यूनिट के लिए कानूनी मान TIMESTAMPADD() फ़ंक्शन के विवरण में सूचीबद्ध हैं।

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
-> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
-> -1
mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
-> 128885

unit भी HOUR हो सकता है जो आप टिप्पणियों में से एक में के लिए कहा।

+0

क्षमा करें, लेकिन मैं पूरे डेटाटाइम के बारे में पूछ रहा हूं :( – Mike

+0

@ माइक: मेरा अद्यतन उत्तर देखें। –

+0

मीठा :) मैं आपके उत्तर को सही के रूप में चिह्नित करता हूं :) धन्यवाद – Mike

34

द्वारा यदि "सेकंड में बदलने का", आप मतलब है "परिवर्तित एक UNIX Timestamp करने के लिए" (यानी सेकंड के 1970-01-01 के बाद से संख्या), तो आप UNIX_TIMESTAMP समारोह का उपयोग कर सकते
और, पूर्णता के लिए, यूनिक्स टाइमस्टैम्प से डेटाटाइम में कनवर्ट करने के लिए, आप FROM_UNIXTIME फ़ंक्शन का उपयोग कर सकते हैं।

+0

अच्छा और जब मैं HOURS में दो डेटाटाइम के बीच अंतर चाहता हूं, तो क्या मुझे कुछ ऐसा उपयोग करना चाहिए? : चयन करें (unix_timestamp ('2010-01-02 18:00:00') - unix_timestamp ('2010-01-01 16:00:00'))/60/60; – Mike

+0

मुझे लगता है कि TIMESTAMPDIFF फ़ंक्शन को चाल चलनी चाहिए: यह वांछित इकाई निर्दिष्ट करने की अनुमति देता है (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff देखें) –

+0

धन्यवाद, फ़ेलिक्स ने पहले से ही टाइमस्टेम्पडिफ़ का उपयोग करने का सुझाव दिया है, जो मैं चाहता था – Mike

2

फ़ंक्शन UNIX_TIMESTAMP (डेटाटाइम) यूनिक्स समय देता है, जो 1-जनवरी-1 9 70 0000 यूटीसी के बाद से सेकंड की संख्या होती है। यही कारण है कि हो सकता है कि तुम क्या जरूरत है, लेकिन नहीं आप के बाद 2037.

3

मैं mysql में

TO_SECONDS (आपकी दिनांक यहाँ जाता है) विधि का इस्तेमाल तारीख कन्वर्ट करने के लिए जन्म की तारीख, ऐतिहासिक तारीखों, या दिनांक के साथ काम कर रहे हैं साल 0 से सेकंड

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

2

mysql 5.5 में शुरू करने के लिए।0 आप mysql के लिए पिछले संस्करणों में उपयोग कर सकते हैं to_seconds()

TO_SECONDS(FIELD_NAME) 

FIELD_NAME DATETIME प्रकार होना चाहिए

6

उपयोग TIME_TO_SEC

चयन TIME_TO_SEC (समय स्तंभ) तालिका से

0

मैं अपने खुद के प्रश्न बनाया है आपकी समस्या के लिए:

select (hour(*colname*)*3600 + minute(*colname*)*60 + second(*colname*)) 
from widgets 
where id=1; 
  • यदि आपको कोई विशिष्ट पंक्ति लेनी है तो id=1 का उपयोग करें।
  • आउटपुट सेकंड में होगा।
+0

सवाल का जवाब पहले से ही बहुत समय पहले दिया जा चुका है, और स्वीकृत उत्तर दिन के साथ ही घंटों और मिनटों के साथ भी व्यवहार करता है। ओपी ने एक टिप्पणी में स्पष्ट किया कि वह घंटों में दो डेटाटाइम के बीच अंतर की गणना करना चाहता था। –

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