Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

6 Cara Mengonversi String ke Nilai Tanggal/Waktu di SQL Server

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 ''.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan PARSENAME() untuk Mengembalikan Bagian dari Nama Objek di SQL Server

  2. Kirim Email dari Pemicu di SQL Server (T-SQL)

  3. Deteksi rentang tanggal berurutan menggunakan SQL

  4. Cara Memulihkan Database SQL Server di Mac menggunakan SQL Operations Studio

  5. Cara Mengenkripsi Tampilan di SQL Server