"अब" के लिए एक डेटटाइम डेटाबेस फ़ील्ड सेट करें


94

VB.net कोड में, मैं SQL पैरामीटर के साथ अनुरोध बनाता हूं। मैंने DateTime पैरामीटर को DateTime मान पर सेट किया है। अब, मेरा अनुरोध कैसा दिखेगा?

UPDATE table SET date = "2010/12/20 10:25:00";

या

UPDATE table SET date = GETDATE();

पहले मामले में मुझे यकीन है कि हर रिकॉर्ड ठीक उसी समय पर सेट किया जाएगा। दूसरे मामले में यह निर्भर करता है कि DBMS अनुरोध को कैसे संसाधित करता है। जो मुझे दूसरे प्रश्न की ओर ले जाता है: क्या SQL सर्वर अब और () के साथ एक बड़ी तालिका को अपडेट करते समय एक ही तिथि और समय निर्धारित करता है?

EDIT: GETDATE () द्वारा अब प्रतिस्थापित () (जो SQL सर्वर में मौजूद नहीं है)।

जवाबों:


173

SQL में आपको उपयोग करने की आवश्यकता है GETDATE():

UPDATE table SET date = GETDATE();

कोई NOW()फंक्शन नहीं है।


तुम्हारे प्रश्न का उत्तर देने के लिए:

एक बड़ी तालिका में, चूंकि प्रत्येक पंक्ति के लिए फ़ंक्शन का मूल्यांकन किया जाता है, आप अद्यतन फ़ील्ड के लिए अलग-अलग मान प्राप्त करेंगे।

इसलिए, यदि आपकी आवश्यकता इसे एक ही तिथि पर सेट करने की है तो मैं कुछ ऐसा करूंगा (अप्राप्त):

DECLARE @currDate DATETIME;
SET @currDate = GETDATE();

UPDATE table SET date = @currDate;

उफ़ हाँ अब () माशूक़ है, क्षमा करें। लेकिन सवाल बने हुए हैं।
थिबॉल्ट विट्ज

ठीक है धन्यवाद। इसलिए मुझे अपने अनुरोध में वास्तविक तिथि (कोड से) डालने की आवश्यकता नहीं है, GETDATE () नहीं जानते हैं कि क्या आप DateTime को SQLparameter सेट कर रहे हैं। अब यह कैसे होगा या यदि मुझे पहली बार तारीख को स्ट्रिंग में परिवर्तित करना चाहिए इसे अनुरोध में जोड़ें?
थिबॉल्ट विट्ज

@@ थिबॉल्ट विट्जिग - आप कर सकते थे। या आप पोस्ट की गई एसक्यूएल का उपयोग कर सकते हैं (वर्तमान तिथि को एक चर में प्राप्त करें और तालिका में तिथि निर्धारित करने के लिए चर का उपयोग करें - चर में मूल्य नहीं बदलेगा)।
ऊद

यदि आप सभी अभिलेखों के लिए एक ही समय रखना चाहते हैं, तो पैरामीटर को SQL के उपयोग से पैरामीटर के रूप में पास करें। इस तरह, आपको स्ट्रिंग पार्सिंग या स्थानीयकृत डेटा स्ट्रिंग स्वरूपण समस्याओं के बारे में चिंता करने की आवश्यकता नहीं है।
जिम वूले जूल 17'13

20

GETDATE () का एक विकल्प CURRENT_TIMESTAMP है। ठीक वही काम करता है।


7
CURRENT_TIMESTAMPSQL मानक वास्तविक है तो कुछ का तर्क हो सकता है कि यह पसंदीदा वाक्यविन्यास है।
टोनी एल।

यह काफी गलत है। मैं सिर्फ उन दो पर डॉक्स पढ़ता हूं और यह मुझे स्पष्ट प्रतीत होता है कि वे "ठीक वही बात" नहीं हैं। यह प्रश्न इसके लिए एक अधिक विस्तृत विवरण प्रदान करता है: stackoverflow.com/questions/7105093/…
Mladen B.

7

GETDATE () का उपयोग करें

डेटाबेस समय क्षेत्र ऑफ़सेट के बिना डेटाइम मान के रूप में वर्तमान डेटाबेस सिस्टम टाइमस्टैम्प लौटाता है। यह मान कंप्यूटर के ऑपरेटिंग सिस्टम से लिया गया है जिस पर SQL सर्वर का उदाहरण चल रहा है।

UPDATE table SET date = GETDATE()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.