Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Berjaya Menukar Rentetan Varchar mmddyyyy kepada DateTime dalam SQL Server 2008?
Cara yang berkesan untuk menukar rentetan varchar mmddyyyy kepada datetime dalam SQL Server 2008
Dalam SQL Server 2008, menukar rentetan format mmddyyyy yang mewakili tarikh kepada jenis data datetime mungkin menghadapi ralat penukaran. Begini cara untuk membetulkannya:
Menghuraikan dan menukar rentetan
Penukaran menggunakan fungsi CONVERT secara langsung mungkin gagal dengan ralat di luar julat. Sebaliknya anda harus menghuraikan rentetan secara manual ke dalam bahagian komponennya (bulan, hari, tahun) dan kemudian membina nilai datetime:
<code class="language-sql">DECLARE @Date char(8) SET @Date = '12312009' SELECT CONVERT(datetime, RIGHT(@Date, 4) + SUBSTRING(@Date, 3, 2) + LEFT(@Date, 2))</code>
Contoh: Tukar '12312009' kepada DateTime
Menggunakan kaedah di atas, rentetan '12312009' boleh ditukar kepada nilai datetime seperti berikut:
<code class="language-sql">SELECT CONVERT(datetime, RIGHT('12312009', 4) + SUBSTRING('12312009', 3, 2) + LEFT('12312009', 2))</code>
Hasil keluaran
Keluaran pertanyaan di atas ialah:
<code>----------------------- 2009-12-31 00:00:00.000 (1 row(s) affected)</code>
Sila ambil perhatian bahawa untuk memastikan ketepatan penukaran, susunan pemprosesan rentetan telah dilaraskan dalam kod, meletakkan tahun di hadapan, bulan di tengah dan tarikh di penghujung, iaitu berbeza daripada kaedah pemprosesan lalai bagi fungsi CONVERT.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berjaya Menukar Rentetan Varchar mmddyyyy kepada DateTime dalam SQL Server 2008?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!