2009-06-04 13 views
17

मैं एक तालिका में प्रत्येक पंक्ति में एक डेटाटाइम-प्रकार कॉलम में 1 वर्ष जोड़ना चाहता हूं। एक अद्यतन विवरण का उपयोग करना संख्यात्मक प्रकारों के लिए आसान है। पूर्व:मैं DATETIME कॉलम में 1 वर्ष जोड़ने के लिए SQL अद्यतन विवरण का उपयोग कैसे कर सकता हूं?

UPDATE TABLE SET NUMBERCOLUMN = NUMBERCOLUMN + 1 

मैं एक DATETIME-प्रकार के साथ एक ही बात करना चाहते हैं ...

UPDATE Procrastination SET DropDeadDueDate = DropDeadDueDate + ? 

... लेकिन मैं क्या मान का उपयोग करने यकीन नहीं है। क्या कोई संख्यात्मक मूल्य है जिसका मैं उपयोग कर सकता हूं जिसका मतलब है "1 वर्ष"? या SQL Server में एक DATEADD फ़ंक्शन या समान है?

अतिरिक्त प्रश्न

मैं नहीं एक क्षेत्र के लिए यह करने के लिए चाहते हैं, लेकिन डेटा प्रकार 'दिनांक' के डेटाबेस में हर क्षेत्र के लिए। क्या 'डेटाटाइम' प्रकार के सभी फ़ील्ड का चयन करने और एक्स की मात्रा जोड़ने के अपडेट का कोई आसान तरीका है? मैं SQL के तो कृपया कोमल हो नया हूँ ...

+1

@shahkalpesh - शायद मैं होना चाहिए। मुझे कोई संदेह नहीं है कि मैं * अपने आप को जवाब मिल सकता था। लेकिन चूंकि स्टैक ओवरफ्लो सभी प्रोग्रामिंग ज्ञान का भंडार होने की आकांक्षा प्रतीत होता है, और इस सवाल से अभी तक नहीं पूछा गया था, मुझे लगा कि "क्यों नहीं?"। –

+3

@ जोशुआ, मेरे उत्तर के तहत केवी को मेरी टिप्पणी देखें। जब मैं आपका प्रश्न देखता हूं, ऐसा लगता है कि आपने DATEADD कहकर भाग लिया है। अगर लोग प्रश्न पूछते हैं, तो वे आसानी से किताबों में ऑनलाइन मिल सकते हैं - यह वास्तविक समस्याओं/समाधानों के बजाय एक लिंक एक्सचेंज बन जाएगा - जो एमएसडीएन/पुस्तकें ऑनलाइन/इंटरनेट में नहीं मिल सकता है। बस मेरी राय, कुछ भी व्यक्तिगत नहीं है। शांति :) – shahkalpesh

उत्तर

36

वहाँ वास्तव में T-SQL में एक DATEADD बयान है, तो आप इसे here

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yyyy,1,DropDeadDueDate) 

संपादित पा सकते हैं: आप साल, इस्तेमाल कर सकते हैं DATEADD के पहले तर्क के लिए yy, या yyyy

+4

.. और आज के भाग्यशाली "सबसे तेज़ टाइपिस्ट आसान प्रतिनिधि" प्रतियोगिता है ... – gbn

+0

मैं phpmyadmin में एक ही काम करना चाहता हूं लेकिन यह कहता है कि '# 1305 - फ़ंक्शन [table_name] .ADD_DATE मौजूद नहीं है' – someone

1

UPDATE Procrastination SET DropDeadDueDate =
DATEADD(yy, 1, DropDeadDueDate)

रेफरी: http://doc.ddart.net/mssql/sql70/da-db_5.htm

+0

लिंक उपयोगी है, क्या एक और हालिया एमएसडीएन लिंक एसक्यूएल 7 की बजाय अधिक सहायक नहीं होगा? एकमात्र कारण मैं पूछता हूं कि आपने ओपी की आलोचना करने के लिए आलोचना नहीं की है ?? –

+0

@ केवी: मैं आलोचना नहीं कर रहा हूं :) हां, लिंक पुराना है लेकिन जहां तक ​​मुझे पता है, उस कार्य के लिए चीजें बदली नहीं हैं। मेरा विचार यह है कि प्रश्नों के लिए प्रश्न/उत्तर होना चाहिए, कोई दस्तावेज़ीकरण/एमएसडीएन में आसानी से नहीं मिलेगा।उम्मीद है कि मेरी टिप्पणियों को न्यायसंगत बनाता है। – shahkalpesh

3

DateAdd समारोह आप क्या चाहते हैं क्या करना चाहिए।

UPDATE Procrastination SET DropDeadDueDate = DateAdd(yy, 1, DropDeadDueDate) 
4
UPDATE Procrastination SET DropDeadDueDate = DATEADD(year, 1, DropDeadDueDate) 

http://msdn.microsoft.com/en-us/library/ms186819.aspx

+0

@ बॉब: यह DATEADD (वर्ष, 1, DropDeadDueDate) होना चाहिए – shahkalpesh

+0

ओह, धन्यवाद, इसे बहुत तेज टाइप करने का प्रयास किया, हालांकि पर्याप्त तेज़ नहीं है। – Bob

8

यह इस तरह एक DATEADD() फ़ंक्शन के साथ किया जा सकता है:

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yy, 1, DropDeadDueDate) 
संबंधित मुद्दे