2012-10-23 32 views
5

मैं दो datetimes के बीच का अंतर हो और hh के रूप में स्ट्रिंग में यह प्रदर्शित करने के लिए कोशिश कर रहा हूँ: मिमीअंतर, मिनट, सेकंड

q.parambyname('vstart').asdatetime:= vstart; 
q.parambyname('vend').asdatetime:= vend; 
d:= vend-vstart; 
mins:= d * 1440; 
q.ParamByName('mins').asBCD:= mins; 

वर्तमान डेटाबेस मिनट में

उदाहरण भंडार यह (0,39)

मैं तो स्ट्रिंग प्रारूप hh में डेटाबेस से ले और यह प्रदर्शित करने के लिए करना चाहते हैं: मिमी

+6

क्या आपको वास्तव में अपने डेटाबेस में 'mins' फ़ील्ड चाहिए? 'vstart' और' vend' फ़ील्ड में पहले से ही सभी जानकारी होती है जो आपको क्वेरी परिणाम के रूप में उनके बीच अंतर वापस करने के लिए आवश्यक होती हैं (प्रारूप में आपको आवश्यकतानुसार)। – teran

उत्तर

13

DateUtils में एक कार्यात्मक है n MinutesBetween जिसका उपयोग इस प्रकार किया जा सकता है:

m := MinutesBetween(vend,vstart); 
yourHMStr := Format('%2.2d:%2.2d',[m div 60,m mod 60]);