Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat Ralat Luar Julat Semasa Menukar DateTime2 kepada DateTime dalam Pelayan SQL?
SQL Server: Menyelesaikan Ralat Luar Julat Semasa DateTime2 kepada Penukaran DateTime
Menukar DateTime2
kepada DateTime
dalam SQL Server boleh mencetuskan ralat di luar julat. Ini bukan jenis data yang tidak padan mudah; masalahnya berpunca daripada cara nilai dikendalikan dalam medan DateTime
.
Isu Teras:
JenisSQL Server DateTime
tidak membenarkan nilai NULL
. Medan DateTime
yang tidak dimulakan menjadi lalai kepada DateTime.MinValue
(01/01/0001).
Pembetulan Pantas:
Tetapkan nilai DateTime
yang sah pada medan sebelum sisipan pangkalan data.
Penjelasan Terperinci:
SQL Server DateTime
mempunyai tarikh maksimum 01/01/9999, manakala DateTime2
menyokong julat yang lebih luas, bermula dari 01/01/0001. Rangka Kerja Entiti lalai kepada DateTime2
, secara tersirat menukar DateTime2
kepada DateTime
apabila berinteraksi dengan pangkalan data. Penukaran ini gagal jika nilai DateTime2
berada di luar julat DateTime
.
Penyelesaian:
Isi medan DateTime
dengan nilai yang sah sebelum menyimpan:
<code class="language-csharp">myDataTable.Rows[0]["myDate"] = DateTime.Now; // Use the current date</code>
Amalan Terbaik:
DateTime
jadual pangkalan data anda boleh batal untuk menampung nilai NULL
.NULL
tidak dibenarkan, gunakan DateTime.MinValue
atau DateTime.MaxValue
sebagai lalai untuk mengelakkan pengecualian di luar julat.Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Luar Julat Semasa Menukar DateTime2 kepada DateTime dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!