2009-08-25 21 views
25

मैं MySQL में पहले से मौजूद डेटटाइम फ़ील्ड में केवल समय को कैसे अपडेट कर सकता हूं? मैं तारीख को वही रहना चाहता हूं।केवल एक mysql डेटटाइम फ़ील्ड में समय अपडेट करें

+0

मैं इस कोशिश की, लेकिन कोई भाग्य के साथ 'प्रविष्टि' SET entry_period_end_date = ADDTIME (entry_period_end_date, INTERVAL 6 घंटे) कहां समय (entry_period_end_date) = '06: 00: 00 '; – Martin

उत्तर

1
UPDATE myTable 
SET myDateTime = ADDTIME(myDateTime, @myTimeSpan) 
WHERE id = @id; 

फ़ंक्शन के सटीक वाक्यविन्यास के लिए, this देखें।

+1

'ADDTIME' फ़ंक्शन मौजूदा में एक समय जोड़ता है। इसका मतलब यह है कि इसके लिए काम करने के लिए, आप उम्मीद करते हैं कि 'myDateTime' के पास केवल तारीख भाग सेट होगा (और समय भाग मध्यरात्रि है)। – awe

0
UPDATE `table` 
SET time = ADDTIME(time, INTERVAL 13 Hour); 
0

ठीक है, आप जो भी मांग रहे हैं वह संभव नहीं है। दिनांक और समय घटकों को अलग से अपडेट नहीं किया जा सकता है, इसलिए आपको मौजूदा दिनांक से नए डेटटाइम मान की गणना करनी है ताकि आप पूरे मान को प्रतिस्थापित कर सकें।

+0

वैसे यह करना संभव है, विशेष रूप से डेटाटाइम फ़ील्ड के समय हिस्से को लक्षित नहीं करना, लेकिन आप वांछित परिणाम प्राप्त करने के लिए कुछ कर सकते हैं। – awe

2
UPDATE myTable 
SET myDateTime = ADDTIME(DATE(myDateTime), @myTimeSpan) 
WHERE id = @id; 

MySQL तारीख कार्यों पर प्रलेखित MySQL docs

+1

एसईटी तिथि = ADDTIME (दिनांक (दिनांक), '02: 00: 00.9 99 998 ') तिथि 0000-00-00 00:00:' – NaturalBornCamper

10

इस प्रयास करें:

UPDATE t1 SET DateTimeField = CONCAT(DATE(DateTimeField),' 12:34:56'); 
39

इस प्रयास करें:

UPDATE yourtable SET yourcolumn=concat(date(yourcolumn), ' 21:00:00') WHERE Id=yourid; 
+1

पर सेट करता है यह उत्तर बिल्कुल विज्ञापन के रूप में कार्य करता है। –

1

इस प्रयास करें:

UPDATE sms 
SET entry_period_end_date= entry_period_end_date+INTERVAL 6 Hour 
WHERE TIME(entry_period_end_date) = '06:00:00'; 
4

मैं इस तरह से हल कर लिया है:

UPDATE table 
SET myDateTime = CONCAT_WS(' ',DATE(myDateTime), CURTIME()) 
WHERE id = @id; 

जाहिर है आप अपने वांछित समय के साथ CURTIME() बदलना चाहिए।

+0

यह बहुत उपयोगी है, मैं नेट पर कभी-कभी इस कथन को खोज रहा था। धन्यवाद ! – user1114409

0

MySQL देव पेज subtime और difftime

3 घंटों में समय के सभी पोस्ट वापस करने के लिए एक नमूना कोड जैसे कार्यों से पता चलता ऊपर है:

UPDATE tablepost SET datepost = SUBTIME(datepost , '0 3:0:0'); 

नोट को महत्व देता है कि 0 न संबंधित क्षेत्र में परिवर्तन। इस कोड का ख्याल रखें, इन फ़ंक्शन का परीक्षण करने के लिए पहले चयन करें।

संदर्भ: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_subtime

0

asuming आप एक तिथि क्षेत्र और समय क्षेत्र है और तारीख में समय इंजेक्षन करना चाहते हैं, इस प्रयास करें: अद्यतन:

UPDATE mytable 
SET mydatefield = ADDTIME(DATE_FORMAT(mydatefield,'%Y-%m-%d 00:00:00'), mydatefield) 
WHERE myid = ... 
संबंधित मुद्दे