Jika Anda perlu mengubah string menjadi nilai tanggal/waktu di SQL Server, Anda memiliki sejumlah opsi. Dalam postingan ini saya menguraikan enam fungsi T-SQL yang memungkinkan Anda melakukan ini.
Keenam fungsi tersebut adalah:
CAST()
CONVERT()
PARSE()
TRY_CAST()
TRY_CONVERT()
TRY_PARSE()
Di bawah ini adalah contoh bagaimana Anda dapat menggunakan fungsi-fungsi ini untuk mengonversi string menjadi tipe data tanggal/waktu.
Fungsi CAST()
Dalam contoh ini, kami mengonversi string menjadi tanggal tipe data (kami menentukan ini dengan menggunakan date
sebagai argumen kedua).
SELECT CAST('20 Dec 2018' AS date) AS Result;
Hasil:
+------------+ | Result | |------------| | 2018-12-20 | +------------+
Untuk contoh lainnya, lihat Cara Mengonversi String ke Tanggal/Waktu di SQL Server menggunakan CAST()
.
Fungsi CONVERT()
Di sini, kita melakukan konversi yang sama seperti contoh sebelumnya, tetapi dengan CONVERT()
fungsi. Satu-satunya perbedaan di sini adalah sintaksnya.
SELECT CONVERT(date, '20 Dec 2018') AS Result;
Hasil:
+------------+ | Result | |------------| | 2018-12-20 | +------------+
Untuk contoh lainnya, lihat Cara Mengonversi String ke Tanggal/Waktu di SQL Server menggunakan CONVERT()
.
Fungsi PARSE()
Dalam contoh ini, saya menambahkan hari kerja sebagai bagian dari string. Alasan saya melakukan ini adalah untuk menunjukkan manfaat yang dimiliki fungsi ini dibandingkan yang lain. Jika Anda memberikan tanggal dalam format ini ke fungsi lain, Anda akan mendapatkan kesalahan. Tapi PARSE()
fungsi dapat menangani ini:
SELECT PARSE('Thursday, 20 Dec 2018' AS datetime2) AS 'Result';
Hasil:
+-----------------------------+ | Result | |-----------------------------| | 2018-12-20 00:00:00.0000000 | +-----------------------------+
Untuk contoh lainnya, lihat Cara Mengonversi String ke Tanggal/Waktu di SQL Server menggunakan PARSE()
.
Fungsi TRY_CAST()
Anda dapat menggunakan TRY_CAST()
bukannya CAST()
untuk memberikan cara yang lebih halus dalam menangani kesalahan. Saat menggunakan CAST()
fungsi, jika pemain gagal, itu mengembalikan kesalahan. Namun, jika Anda menggunakan TRY_CAST()
sebagai gantinya, ia mengembalikan NULL
dalam kasus seperti itu.
Berikut ini contoh pemeran yang gagal:
SELECT TRY_CAST('Next month' AS date) AS Result;
Hasil:
+----------+ | Result | |----------| | NULL | +----------+
Jika kami memberikan nilai yang sama ke CAST()
sebagai gantinya, inilah yang terjadi:
SELECT CAST('Next month' AS date) AS Result;
Hasil:
Conversion failed when converting date and/or time from character string.
Untuk contoh lainnya, lihat CAST
vs TRY_CAST
di SQL Server:Apa Bedanya?
Fungsi TRY_CONVERT()
Anda juga dapat menggunakan TRY_CONVERT()
bukannya CONVERT()
untuk penanganan kesalahan yang lebih baik. Jika CONVERT()
fungsi gagal itu mengembalikan kesalahan. Tetapi jika TRY_CONVERT()
gagal, ia mengembalikan NULL
.
Berikut ini contoh konversi yang gagal:
SELECT TRY_CONVERT(date, 'Next month') AS Result;
Hasil:
+----------+ | Result | |----------| | NULL | +----------+
Jika kami memberikan nilai yang sama ke CONVERT()
sebagai gantinya, inilah yang terjadi:
SELECT CONVERT(date, 'Next month') AS Result;
Hasil:
Conversion failed when converting date and/or time from character string.
Untuk contoh lainnya, lihat CONVERT
vs TRY_CONVERT
di SQL Server:Apa Bedanya?
Fungsi TRY_PARSE()
Anda juga dapat menggunakan TRY_PARSE()
bukannya PARSE()
untuk penanganan kesalahan yang lebih baik. Jika PARSE()
fungsi gagal itu mengembalikan kesalahan. Tetapi jika TRY_PARSE()
gagal, ia mengembalikan NULL
.
Berikut ini contoh konversi yang gagal:
SELECT TRY_PARSE('Next month' AS date) AS Result;
Hasil:
+----------+ | Result | |----------| | NULL | +----------+
Jika kami memberikan nilai yang sama ke PARSE()
sebagai gantinya, inilah yang terjadi:
SELECT PARSE('Next month' AS date) AS Result;
Hasil:
Error converting string value 'Next month' into data type date using culture ''.