2013-08-27 6 views
5

MySQL 5.6.4 और ऊपर अस्थायी कॉलम प्रकार के लिए fractional सेकंड का समर्थन करता है। http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.htmlMySQL 5.6 के साथ आंशिक सेकंड को अनदेखा कैसे करें?

लेकिन मैं संगतता के लिए आंशिक सेकंड भाग को अनदेखा करना चाहता हूं।

mysql> CREATE TABLE `t1` (`created` datetime(0) NOT NULL); 
Query OK, 0 rows affected (0.41 sec) 

mysql> INSERT INTO t1 set created = '2013-08-27 05:13:21.999'; 
mysql> INSERT INTO t1 set created = '2013-08-27 23:59:59.999'; 


mysql> select * from t1; 
+---------------------+ 
| created    | 
+---------------------+ 
| 2013-08-27 05:13:22 | 
| 2013-08-28 00:00:00 | 
+---------------------+ 
2 row in set (0.00 sec) 

अपेक्षित परिणाम '2013-08-27 05:13:21' और '2013-08-27 23:59:59' है।

मैं MySQL के पिछले संस्करण के साथ एक ही परिणाम कैसे सहेज सकता हूं? के रूप में नीचे दी गई तालिका बनाने के लिए

+0

कैसे आप कह रहे हैं अपने कम से कम 1 सेकंड में होने की उम्मीद? – logan

+0

क्या आप चाहते हैं कि यह केवल चयन स्तर पर रिकॉर्ड प्रदर्शित करे? – logan

+0

मैं डेटाटाइम गणना की संगतता रखना चाहता हूं, प्रश्न में अद्यतन उदाहरण केस। – shoma

उत्तर

3

प्रयास करें:

CREATE TABLE t1 (dt DATETIME(6) NOT NULL); 

SQL Fiddle

+0

यह मेरे मामले के लिए एक अच्छा समाधान दिखता है। मैं "वैकल्पिक तालिका टी 1 संशोधित 'बनाई गई' डेटाटाइम (6) के साथ प्रयास करूंगा;" – shoma

0

उपयोग SUBTIME समय से अंशों घटाकर के लिए समारोह ..

प्रयास करें इस ... माइक्रोसेकंड घटाना मूल समय से फिर प्रारूप प्रारूप में कनवर्ट करें ...

SELECT cast(SUBTIME(created,cast(concat('0:0:0.',(microsecond(created))) as time)) as datetime) from t1; 

मैं परीक्षण यह .. अपने काम कर रहे .. PFB स्नैपशॉट .. enter image description here

+0

यह दिलचस्प है, लेकिन कोड से उपयोग करने के लिए बहुत जटिल है। – shoma

+0

नहीं, यह काम नहीं करता है। जांचें http://sqlfiddle.com/#!9/22535/1/0 – 7alhashmi

+0

यह काम कर रहा है .. क्या आप अब मेरा स्नैपशॉट देख सकते हैं .. मैंने इसे 5.2.40 संस्करण में आजमाया ... – logan

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