दिलचस्प पोस्ट
पायथन कई तारों की जगह लेता है कोणीय जेएस: कोणीय ऐप में डिस्प्ले ब्लॉब (.पीडीएफ) Mysqli अद्यतन एक सदस्य समारोह bind_param () त्रुटि को कॉल फेंक Unrooted डिवाइस में संपत्ति फ़ोल्डर से डेटाबेस कॉपी करें 3 तरल ग्रिड लेआउट मुद्दों बूटस्ट्रैप? std :: unique_ptr एक अधूरा प्रकार के साथ संकलन नहीं करेगा अनन्य मूल्यों को गणना करने के लिए साधारण पिवट तालिका विंडोज स्टार्टअप पर सी # एप्लिकेशन को चलाने के लिए कैसे? पायथन में महीने का अंतिम दिन प्राप्त करें अगर मैं फ़ायरबेस सरल यूज़रनेम और पासवर्ड प्रमाणीकरण का उपयोग करता हूं तो मैं उपयोगकर्ताओं की सूची कैसे वापस करूँ? यदि कोई सिंक्रनाइज़ (यह) का उपयोग कर सकता है तो एक रीट्रेंट लॉक का उपयोग क्यों करें? AngularJs – रूट परिवर्तन ईवेंट को रद्द करें मैं अपने मूल तत्वों को परिवर्तित किए बिना एक तत्व का पाठ कैसे बदल सकता / सकती हूं? एसक्यूएल में "=" की तुलना में धीमा क्यों हो सकता है? क्या एक चयन टैग में एक विकल्प कई मूल्यों को ले सकता है?

SQL सर्वर के टाइमस्टैम्प कॉलम को डेटटाईम प्रारूप में कनवर्ट करने के लिए कैसे करें

जैसा कि SQL सर्वर 'Nov 14 2011 03:12:12:947PM' टाइमस्टैंप देता है, वहाँ स्ट्रिंग से 'वाईएमडी एच: आई: एस' जैसे स्ट्रिंग को बदलने में कुछ आसान तरीका है।

अब तक मैं का उपयोग करें

 date('Ymd H:i:s',strtotime('Nov 14 2011 03:12:12:947PM')) 

वेब के समाधान से एकत्रित समाधान "SQL सर्वर के टाइमस्टैम्प कॉलम को डेटटाईम प्रारूप में कनवर्ट करने के लिए कैसे करें"

एसक्यूएल सर्वर का TIMESTAMP डेटाटाइप किसी तिथि और समय के साथ कुछ नहीं करना है!

यह एक लगातार संख्या का एक द्विआधारी प्रतिनिधित्व है – यह सुनिश्चित करने के लिए ही अच्छा है कि पंक्ति पढ़ी गई है क्योंकि यह पढ़ा गया है।

SQL सर्वर के नए संस्करणों में, इसे RowVersion कहा जा रहा है – चूंकि यह वाकई है कि यह क्या है। ROWVERSION पर MSDN दस्तावेज़ देखें:

एक डेटा प्रकार है जो स्वचालित रूप से उत्पन्न होता है, एक डेटाबेस के भीतर अद्वितीय बाइनरी संख्या। पंक्तिवर्जन को आम तौर पर संस्करण-मुद्रांकन तालिका पंक्तियों के लिए एक तंत्र के रूप में उपयोग किया जाता है पंक्तिवर्जन डेटा प्रकार केवल एक वृद्धिशील संख्या है और किसी दिनांक या समय को संरक्षित नहीं करता है किसी दिनांक या समय को रिकॉर्ड करने के लिए, एक datetime2 डेटा प्रकार का उपयोग करें

इसलिए आप किसी SQL सर्वर TIMESTAMP को किसी दिनांक / समय पर परिवर्तित नहीं कर सकते – यह केवल दिनांक / समय नहीं है

लेकिन अगर आप टाइमस्टैम्प कह रहे हैं लेकिन वास्तव में आपका मतलब है एक DATETIME कॉलम – तो आप MSDN मदद में CAST और CONVERT विषय में वर्णित मान्य मान्य प्रारूपों का उपयोग कर सकते हैं। वे SQL सर्वर द्वारा "बॉक्स से बाहर" परिभाषित और समर्थित हैं कुछ और समर्थित नहीं है, उदाहरण के लिए आपको मैनुअल कास्टिंग और कॉन्टैनेटिंग (अनुशंसित नहीं) के बहुत सारे करना है।

जिस प्रारूप को आप ढूंढ रहे हैं वह ओडीबीसी कैनोनिकल (शैली = 121) की तरह थोड़ा सा दिखता है:

 DECLARE @today DATETIME = SYSDATETIME() SELECT CONVERT(VARCHAR(50), @today, 121) 

देता है:

 2011-11-14 10:29:00.470 

एसक्यूएल सर्वर 2012 अंत में कस्टम स्वरूपण करने के लिए एक FORMAT फ़ंक्शन होगा ……

कास्ट का उपयोग आप एक टाइमस्टैम्प फ़ील्ड से प्राप्त कर सकते हैं:

  SELECT CAST(timestamp_field AS DATE) FROM tbl_name 

इस संदेश को छोड़कर ठीक काम करता है:

डेटा प्रकार varchar से टाइमस्टैम्प के लिए अप्रत्यक्ष रूपांतरण की अनुमति नहीं है इस क्वेरी को चलाने के लिए CONVERT फ़ंक्शन का उपयोग करें

तो हां, TIMESTAMP (रोवर्सियन) एक DATE नहीं है 🙂

ईमानदार होने के लिए, मैं कुछ समय के लिए अपने आप को एक तारीख को बदलने के लिए एक रास्ता खोजने के लिए fidddled।

सबसे अच्छा तरीका है इसे INT में बदलने और तुलना करने के लिए इस प्रकार का क्या होना चाहिए यदि आप एक तिथि चाहते हैं – बस एक डेटटाइम पंक्ति जोड़ें और बाद में कभी भी खुश रहें 🙂

चीयर्स मैक

मेरे सहकर्मियों ने मुझे इसके साथ मदद की:

 select CONVERT(VARCHAR(10), <tms_column>, 112), count(*) from table where <tms_column> > '2012-09-10' group by CONVERT(VARCHAR(10), <tms_column>, 112); 

या

 select CONVERT(DATE, <tms_column>, 112), count(*) from table where <tms_column> > '2012-09-10' group by CONVERT(DATE, <tms_column>, 112); 

उनमें से कुछ वास्तव में SQL सर्वर 200 9 के बाद से डेट-टाइम को गुप्त करते हैं

निम्न SQL क्वेरी आज़माएं और आप अपने लिए देखेंगे:

 select CAST (0x00009CEF00A25634 as datetime) 

ऊपर का परिणाम 2009-12-30 09: 51: 03: 000 में होगा, लेकिन मुझे उन लोगों से सामना करना पड़ा है जो कि वास्तव में किसी तिथि-समय पर मैप नहीं करते हैं।

ऐसा करने का सबसे आसान तरीका यह है:

 SELECT id,name,FROM_UNIXTIME(registration_date) FROM `tbl_registration`; 

यह एक पठनीय प्रारूप में दिनांक स्तंभ को कम से कम देता है। इसके अलावा अगर आप ते प्रारूप बदलना चाहते हैं, तो यहां क्लिक करें ।

क्यों नहीं FROM_UNIXTIME (unix_timestamp, प्रारूप) का प्रयास करें

निश्चित नहीं कि मुझे यहाँ कुछ याद आ रही है, लेकिन आप इस तरह टाइमस्टैम्प को परिवर्तित नहीं कर सकते हैं:

 CONVERT(VARCHAR,CAST(ZEIT AS DATETIME), 110)