Soalan:
Apabila menyimpan data DataTable yang mengandungi lajur DateTime ke pangkalan data, ralat berlaku yang menunjukkan bahawa penukaran daripada DateTime2 kepada jenis data DateTime berada di luar julat. Masalah ini berterusan walaupun penetapan jenis data yang betul dalam kod dan pangkalan data.
Soalan:
Bolehkah ralat penukaran ini diselesaikan dengan pengubahsuaian kod, atau adakah ia memerlukan perubahan pangkalan data?
Jawapan:
Jawapan ringkas:
Ya, memulakan nilai untuk medan DateTime menyelesaikan masalah ini. Oleh kerana DateTime tidak menerima nilai NULL, adalah penting untuk menetapkan nilai lalai.
Jawapan terperinci:
Nilai lalai untuk jenis DateTime yang tidak boleh dibatalkan dalam C# ialah DateTime.MinValue (01/01/0001), yang merupakan julat tidak sah untuk SQL Server DateTime. Perbezaan ini adalah kerana SQL Server DateTime mempunyai tarikh sah minimum 01/01/1753 kerana sistem kalendar Gregoriannya. Walau bagaimanapun, DateTime2 dalam Rangka Kerja Entiti membenarkan tarikh bermula dari 01/01/0001.
Apabila menyimpan data daripada medan DateTime2 dalam Rangka Kerja Entiti, ia secara tersirat dihantar ke DateTime pada bahagian SQL Server. Penukaran ini mencetuskan ralat di luar julat. Untuk menyelesaikan isu ini, memulakan medan DateTime secara eksplisit dengan nilai yang sah dalam julat yang dibenarkan akan menghalang ralat penukaran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Ralat Penukaran DateTime2 ke DateTime Di Luar Julat Apabila Menyimpan Data ke Pangkalan Data Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!