منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ازاى احول قيمه numeric الى datetime
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمه الله وبركاته

عندى قاعده بيانات sql 2005 عليها بيانات وبصمات مستخدمين نازله من على اجهزه البصمه
الجول اسمه 
EVENT_LOG

فيها مجموعه من ال columns 
nUserID  :  ده فيه ارقام الموظفين 

nDateTime : ده فيه البصمات بتاعه الموظفين 

ولكن البصمات مش مكتوبه بصيغه تاريخ مكتوبه بصيغه ارقام مثلا : 540378875 , 540378875

السؤال هنا ازاى اقدر احول القيم دى واخليها على صيغه datetime 
واقدر اعرضها فى datagridview 

وشكرا على المساعده
سلام

احتمال كبير يكون هو هذا الكود
كود :
' http://www.unixtimestamp.com/

'http://stackoverflow.com/questions/13108574/converting-datetime-to-number-of-seconds-in-vb-net

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    MsgBox(FromUnix(540378875, True))
End Sub


Public Function FromUnix(ByVal seconds As Integer, ByVal local As Boolean) As DateTime
    Dim dt = Epoch.AddSeconds(seconds)
    If local Then dt = dt.ToLocalTime
    Return dt
End Function
Public Function ToUnix(ByVal dt As DateTime) As Integer
    If dt.Kind = DateTimeKind.Local Then dt = dt.ToUniversalTime
    Return CInt((dt - Epoch).TotalSeconds)
End Function
Public ReadOnly Property Epoch() As DateTime
    Get
        Return New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
    End Get
End Property

موفقين
جزالك الله خيرا على المساعده

لكن اعذرنى انا مش عارف برده ازاى اطبق الكود ده على انا محتاجه

انا مبتدا لسه فى الفيجوال دوت نت
هل من مساعده
التحويل الي تاريخ ليس بمشكلة لكن و بشكل مبدئي عليك اولا ان تفهم Pattern او الصيغة أو النمط الذي تم استخدامه لإدخال البيانات فهذا سيحدد بشكل كبير الكيفية التي سوف تستخدمها لتحويل هذا النمط او هذه الصيغة الي تاريخ

علي سبيل المثال الصيغة الخاصة بك هي عبارة عن 9 ارقام و نعم هي تبدو لك ارقاما ولكن حين تتعامل معها لتحويلها الي تاريخ ستتعامل معها علي انها String و ليس أرقاما

غالبا ShortDateString الصيغة او النمط الخاص به عبارة عن 8 ارقام فقط علي سبيل المثال لو اعتبرنا الرقم الرقم 20151206 يمثل صيغة للتاريخ هنا ستجد أن الاربعة ارقام الأولي من اليسار تمثل السنة و الرقمان التاليان من اليسار ايضا يمثلان الشهر و الرقمان الأخيران يمثلان اليوم و بالتالي من المفترض ان الشكل النهائي لمثل هذا الرقم و عند تحويله الي تاريخ سيكون عبارة عن 06/12/2015

لذلك و لكي يتم حل مشكلتك بشكل دقيق عليك ان توضح لنا الصيفة او النمط الذي تم استخدامه
try this
Dim d As Date = Date.FromOADate(41498)
either using date or dateTime

Rolleyes Smile Rolleyes
الاستاذ silverlight

القيمه التى تم ادخال بها البيانات هى int
اذا كان هذا قصدك
سلام

الارقام التي ذكرتها ومنها 540378875 هي عباره عن نوع اسمه unix time
وطريقتها انها تحسب عدد الثوان من تاريخ من بدايه يوم 1 يناير 1970

جرب تضع الرقم اللي ذكرتك حضرتك في هذا الموقع http://www.unixtimestamp.com
وبتلاقيه يحوله الى 02/15/1987 @ 9:14am على اعتبار التوقيت هو جرينتش UTC

جرب هذا الاستعلام كتجربه لترى النتيجه
- انا جربته ونجح في التحويل قبل عرض البيانات في الداتاجريد
كود :
SELECT [nUserID],
       DATEADD(S, [nDateTime], '1970-01-01') AS [nDateTime]
FROM   [EVENT_LOG]

واذا بدك تضيف فارق التوقيت عدل الرقم 3 لفارق التوقيت اللي بتريد
كود :
SELECT [nUserID],
       DATEADD(HOUR, 3, (DATEADD(S, [nDateTime], '1970-01-01'))) AS [nDateTime]
FROM   [EVENT_LOG]

http://stackoverflow.com/questions/29042...sql-server

موفقين