2010-06-25 23 views
38

मैं एक पुराने mysql डेटाबेस के साथ काम कर रहा हूं जिसमें दिनांक दिनांक (एक समय के बिना) डेटाटाइम के रूप में संग्रहीत किया जाता है और एक समय स्ट्रिंग के रूप में संग्रहीत किया जाता है (बिना तारीख)।दिनांक दिनांक और समय को दिनांक दिनांक और समय जोड़ना एक स्ट्रिंग

सी # में मेरे पास 2010-06-25 12:00:00 AM जैसे मान के साथ डेटटाइम है और 15:02 जैसे मान के साथ एक स्ट्रिंग है।

बिना किसी ओवरहेड के इन्हें गठबंधन करने का सबसे संक्षिप्त तरीका क्या है?

DateTime NewDateTime = DateTime.Parse(OldDateTime.ToString("yyyy-MM-dd ") + TimeString); 

मैं एक स्ट्रिंग के लिए मौजूदा दिनांक समय परिवर्तित करने के लिए और समय जोड़कर नापसंद:

मैं सहित कुछ तरीकों की कोशिश की है।

मैं समय स्ट्रिंग को एक तारीख में परिवर्तित कर सकता हूं, लेकिन फिर मुझे आज की तारीख मिलती है और इसे पुराने डेटाटाइम में कई टिकों के रूप में जोड़ना गलत है।

नोट: सत्यापन के बारे में चिंता न करें, यह कहीं और किया जाता है। समय के बिना 24 घंटे के प्रारूप का उपयोग कर प्रतिनिधित्व किया जाता है।

उत्तर

60

आप TimeSpan.Parse उपयोग कर सकते हैं समय पार्स करने के लिए, और उसके बाद की तारीख के लिए परिणाम जोड़ें:

DateTime newDateTime = oldDateTime.Add(TimeSpan.Parse(timeString)); 
+0

अच्छा समाधान के रूप में यह है करने के लिए जारी रखा। @ जेयलटन, मैं इसका उपयोग करता हूं और डीटीबी के जवाब को सही तरीके से चिह्नित करता हूं। –

+0

मुझे विश्वास नहीं है कि मैं 'टाइमस्पेन' का उपयोग करने के बारे में भूल गया - यह वही है जो आवश्यक था। – JYelton

0

मुझे लगता है कि आप स्ट्रिंग रूपांतरण के बारे में बहुत ज्यादा चिंता कर रहे हैं। एक साथ 2 स्ट्रिंग तत्वों को संयोजित करके आप आगे की तारीख स्ट्रिंग पार्सिंग को किसी भी तरह से सहेज रहे हैं जो अधिकतर महंगा होगा।

क्या यह एक बड़ी प्रक्रिया में कई बार या एक साधारण कदम दोहराया जा रहा है?

8
var dt = new DateTime(2010, 06, 26); // time is zero by default 
var tm = TimeSpan.Parse("01:16:50"); 
var fullDt = dt + tm; // 2010-06-26 01:16:50 
-1

मुझे पूरा यकीन है कि आप इन मानों को एसक्यूएल का उपयोग करके टाइमस्टैम्प में जोड़ सकते हैं और परिवर्तित कर सकते हैं।

+3

ऐसी चीजों के लिए डेटाबेस को मारना वास्तव में एक बुरा विचार है। आपका कार्यक्रम बहुत धीमा हो जाएगा, और अचानक किसी भी अच्छे कारण के बिना मजबूत बाहरी निर्भरताएं होंगी। – simendsjo

4

मैं simendsjo क्या कहते हैं करने के लिए कुछ इसी तरह इस्तेमाल किया है, सिवाय इसके कि मैं एक दिनांक समय

DateTime date = Convert.ToDateTime(txtTrainDate.Text); 
DateTime time = Convert.ToDateTime(ddTrainTime.SelectedValue); 
DateTime dtCOMPLTDTTM = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second); 
+0

जब आप एक 'डेटटाइम' मान के "समय" भाग को जोड़ना चाहते हैं और किसी अन्य 'दिनांक समय' मान के "दिनांक" भाग को जोड़ना चाहते हैं। – mmcrae

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