2014-04-08 4 views
5

मैं दिनांक और समय एक पंक्ति जोड़ दिया जाता है के लिए एक तालिका स्तंभ बनाने के लिए एक प्रश्न के इस हिस्से का इस्तेमाल किया इस:मैं डेटाटाइम एसक्यूएल कॉलम डेटा में 1 घंटा कैसे जोड़ूं?</p> <p><code>order_date datetime NOT NULL DEFAULT GETDATE()</code></p> <p>और जब भी एक नई पंक्ति बनाई है, <code>order_date</code> के लिए डेटा की तरह कुछ करने के लिए सेट है:

Apr 8 2014 9:52AM

किसी कारण के लिए, जब एक पंक्ति बनाई गई है और order_date स्तंभ डेटा सेट किया गया है, घंटे 1 घंटे वापस निर्धारित है। उदाहरण के लिए, Apr 8 2014 9:52AM के लिए उपरोक्त कॉलम डेटा 10:52 पूर्वाह्न पर सेट किया गया था।

क्या इसे 1 घंटे आगे सेट करने का कोई तरीका है ताकि यह मेरे वर्तमान समय के साथ सही हो?

किसी भी मदद के लिए धन्यवाद। सभी मदद की बहुत सराहना की जाती है।

+3

चेक अपने एसक्यूएल सर्वर पर सिस्टम का समय। इसे ठीक करें, लक्षण नहीं। – MatBailie

+0

सर्वर का टाइमज़ोन बंद हो सकता है। –

+0

मैं नहीं कर सकता, क्योंकि यह मेरा सर्वर नहीं है, इसलिए मैं टाइमज़ोन नहीं बदल सकता। – Kelsey

उत्तर

4

आपको DATETIMEOFFSET का उपयोग DATETIME के ​​बजाय अपने डाएटाइप के रूप में करना चाहिए।

एक तारीख है कि एक दिन का समय समय क्षेत्र जागरूकता है और एक 24-घंटे घड़ी पर आधारित है कि के साथ संयुक्त है परिभाषित करता है।

आप इसे SYSDATETIMEOFFSET( के साथ उपयोग कर सकते हैं)।

Returns a datetimeoffset(7) value that contains the date and time of the computer on which the instance of SQL Server is running. The time zone offset is included. 

उदाहरण:

CREATE TABLE DateTest (id INT, order_date DATETIMEOFFSET NOT NULL DEFAULT SYSDATETIMEOFFSET()) 
INSERT INTO DateTest (id) VALUES (1) 
SELECT * FROM DateTest 
+0

मैं 'date_default_timezone_set ('अमेरिका/एडमोंटन') का उपयोग कर रहा हूं; 'मेरे PHP पृष्ठ पर, इसलिए मुझे आशा है कि यह उस तारीख/समय को निर्धारित करेगा। मैं इस प्रकार के डेटा के लिए टेबल कॉलम बनाने के लिए क्वेरी बनाने के बारे में कैसे जाउंगा? – Kelsey

+0

SQL सर्वर DATETIME में समय क्षेत्र जानकारी नहीं है, इसलिए PHP अधिक जानकारी के बिना इसके साथ कुछ भी नहीं कर सकता है। मुझे क्वेरी जोड़ने के लिए समय नहीं लेना पड़ेगा, लेकिन मूल रूप से यह अलग-अलग प्रकार और अलग-अलग फ़ंक्शन का उपयोग कर ही है। –

+0

बहुत अच्छा जवाब, यहां एक अप वोट है। यदि संभव हो, तो मैं अपने प्रश्न पर एक अप वोट की सराहना करता हूं। – Kelsey

14

उपयोग DATEADD()

DATEADD(hh, 1, order_date) 

संपादित करें: समय एक घंटे के वापस किया जा रहा है

हैं, तो आप एक गलत सिस्टम का समय हो सकता है। तो, अगर आप सर्वर व्यवस्थापक को इसे सही करने के लिए कहें तो बेहतर होगा।

+0

मैं इसे किसी प्रश्न में कैसे उपयोग करूं? (DATEADD (एचएच, 1, ऑर्डर_डेट)) – Kelsey

+0

तालिका_नाम मूल्यों में INSERT (DATEADD (एचएच, 1, ऑर्डर_डेट))। आप शेष कॉलम की आपूर्ति करते हैं। – Nath

+0

यह वही है जो मैं अभी उपयोग कर रहा हूं और ऐसा लगता है कि यह कोई नई पंक्तियां नहीं डालने वाला प्रतीत होता है: '$ sql5 =" ट्रैकिंग_ऑर्डर में प्रवेश (खाता_आईडी, ऑर्डर_डेट) मूल्य ('"$ acc_id।' ',' DATEADD (hh , 1, order_date) ') " – Kelsey

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