سؤال

ما هي البيانات التحتية الأساسية لقيم DateTime المخزنة في SQL Server (2000 و 2005 إذا كانت مختلفة)؟ أي أسفل إلى التمثيل البايت؟

يفترض أن التمثيل الافتراضي الذي تحصل عليه عند تحديد عمود DateTime هو قيمة / تخضع ثقافيا للتغيير. وهذا هو، بعض الهيكل الأساسي الذي لا نراه هو الحصول على تنسيق إلى YYYY-MM-DD HH: MM: Ss.mmm.

السبب في أنني أسأل هو أن هناك عرضا عموما في قسمي مخزنا في الذاكرة حرفيا كما YYYY-MM-DD HH: MM: Ss.mmm ولكن أنا متأكد من أن هذا ليس هو الحال.

هل كانت مفيدة؟

المحلول

إنه تخزينها كحقل 8 بايت, ، قادرة على مجموعة من 1753-01-01 من خلال 9999-12-31، دقيقة إلى 0.00333 ثانية.

التفاصيل تفترض أنها مبهمة، ولكن معظم الموارد (1), (2) لقد وجدت على حالة الويب ما يلي:

أول 4 بايت تخزن عدد الأيام منذ عصر SQL Server (1 يناير 1900) وأن البايت الثاني (4 بايت) يخزن عدد القراد بعد منتصف الليل، حيث "علامة" هي 3.3 مللي ثانية.

يتم توقيع البايت الأربعة الأولى (يمكن أن تكون إيجابية أو سلبية)، والتي تفسر لماذا يمكن تمثيل التواريخ في وقت مبكر من العهد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top