Last Updated on August 11, 2021 by
Saat bekerja dengan data mentah, Anda mungkin sering menghadapi nilai tanggal yang disimpan sebagai teks. Mengubah nilai ini menjadi tipe data tanggal sangat penting karena tanggal mungkin lebih berharga selama analisis. Di SQL Server, convert string hingga saat ini dapat dicapai dalam berbagai pendekatan.
Kali ini, Codekey akan mengajak Anda untuk memahami cara Convert date SQL Server dalam seri Tutorial SQL 23. Jika Anda tertarik untuk bisa menggunakan cara konversi tanggal di server SQL, pastikan Anda menyimak artikel ini sampai akhir.
Table of Contents
Convert Date SQL Server
Umumnya pengkonversian tipe data itu ada 2:
- Implicit, pengkonversian ini tidak terlihat oleh pengguna namun tipe datanya akan diubah saat memuat data tanpa menggunakan fungsi apapun.
- Explicit, pengkonversian ini terlihat oleh pengguna dan dapat dilakukan menggunakan fungsi CAST atau Convert serta menggunakan alat lainnya yang ada di SQL.
Pada intinya, Convert Date SQL Server berguna untuk mengkonversi sebuah nilai dari berbagai tip eke dalam tipe data yang spesifik. Berikut adalah contoh syntaxnya:
CONVERT(data_type(length), expression, style)
Penjelasan:
- data_type: dibutuhkan untuk mengkonversi “to”. Bisa menjadi salah satu bentuk berikut ini: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary, atau
- (length): nilai ini sifatnya opsional. Length akan menghasilkan tipe data seperti for char, varchar, nchar, nvarchar, binary, dan varbinary.
- expression: dibituhkan untuk mengkonversi tipe data lainnya.
- Style: nilai ini sifatnya opsional. Format yang digunakan untuk mengonversi antar tipe data, seperti format tanggal atau string.
Tanpa Abad | Dengan Abad | Input/Output | Standar |
0 | 100 | mon dd yyyy hh:miAM/PM | Default |
1 | 101 | mm/dd/yyyy | US |
2 | 102 | yyyy.mm.dd | ANSI |
3 | 103 | dd/mm/yyyy | Inggris/Perancis |
4 | 104 | dd.mm.yyyy | Jerman |
5 | 105 | dd-mm-yyyy | Italia |
6 | 106 | dd mon yyyy | – |
7 | 107 | Mon dd, yyyy | – |
8 | 108 | hh:mm:ss | – |
9 | 109 | mon dd yyyy hh:mi:ss:mmmAM (or PM) | Default + millisekon |
10 | 110 | mm-dd-yyyy | USA |
11 | 111 | yyyy/mm/dd | Jepang |
12 | 112 | yyyymmdd | ISO |
13 | 113 | dd mon yyyy hh:mi:ss:mmm | Europa (24 jam)> |
14 | 114 | hh:mi:ss:mmm | 24 jam |
20 | 120 | yyyy-mm-dd hh:mi:ss | ODBC canonical (24 jam) |
21 | 121 | yyyy-mm-dd hh:mi:ss.mmm | ODBC canonical (24 jam) |
126 | yyyy-mm-ddThh:mi:ss.mmm | ISO8601 | |
127 | yyyy-mm-ddThh:mi:ss.mmmZ | ISO8601 (dengan zona waktu z) | |
130 | dd mon yyyy hh:mi:ss:mmmAM | Hijiri | |
131 | dd/mm/yy hh:mi:ss:mmmAM | Hijiri |
Konversi Float ke real:
Nilai | Penjelasan |
0 | Maksimal 6 digit (default) |
1 | 8 digit |
2 | 16 digit |
Konversi money (mata uang) ke character:
Nilai | Penjelasan |
0 | Tidak ada pembatas koma, 2 digit di sebelah kanan desimal |
1 | Pembatas koma, 2 digit di sebelah kanan desimal |
2 | Tidak ada pembatas koma, 4 digit di sebelah kanan desimal |
Selanjutnya, kita akan melihat bagaimana pengkonversian string ke dalam konversi tanggal atau date dapat dicapai secara implicit atau explicit dalam server SQL menggunakan Date Function seperti CAST(), TRY_CAST(), CONVERT(), TRY_CONVERT(), dan TRY_PARSE().
Convert Date SQL Server: Mengkonversi String ke Date secara Implicit
Seperti disebutkan di atas, mengonversi tipe data secara implisit tidak terlihat oleh pengguna, sebagai contoh saat Anda membandingkan dua bidang atau nilai yang memiliki tipe data berbeda:
SELECT * FROM information_schema.columns where '1' = 1
Di SQL Server, mengonversi string ke date secara implicit bergantung pada format tanggal string dan pengaturan bahasa default (pengaturan regional); Jika tanggal yang disimpan dalam string dalam format ISO: yyyyMMdd atau yyyy-MM-ddTHH:mm:ss(.mmm), hal itu pun dapat dikonversi terlepas dari pengaturan regional, jika tidak, tanggal harus memiliki format yang didukung atau akan dibuang exception, sebagai contoh saat bekerja di bawah pengaturan regional “EN-US”, jika kita mencoba mengonversi string dengan format dd/MM/yyyy akan gagal karena mencoba mengubahnya sebagai format MM/dd/yyyy yang didukung.
SELECT * FROM information_schema.columns where GETDATE() > '13/12/2019'
Kode di atas akan menghasilkan exception seperti di bawah ini:
Msg 242, Level 16, State 3, Line 1 The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Ketika Anda menukar bagian hari dengan bulan, maka kode di atas akan berhasil:
SELECT * FROM information_schema.columns where GETDATE() > '13/12/2019'
Convert Date SQL Server: Mengkonversi String ke Date secara Explicit
Cara kedua ini dilakukan dengan mengkonversi tipe data yang merupakan pengkonversian explicit yang mana dapat diselesaikan menggunakan beberapa fungsi atau tools. Dalam SQL server, mengkonversi sebuah string ke date secara explicit dapat dilakukan dengan menggunakan fungsi date CONVERT(), CAST(), dan PARSE().
Berikut adalah penjelasan masing-masing date function:
1. CAST()
Date function ini adalah salah satu fungsi konversi yang sangat dasar di dalam SQL server. Fungsi ini mencoba mengonversi nilai yang diberikan ke tipe data tertentu (panjang tipe data hanya dapat ditentukan).
Contoh:
SELECT CAST('12/01/2019' as date) as StringToDate , CAST(GETDATE() as VARCHAR(50)) as DateToString
Perhatikan bahwa mengonversi string ke tanggal menggunakan fungsi CAST() di SQL Server, bergantung pada pengaturan bahasa yang mirip dengan konversi implisit, seperti yang kami sebutkan di bagian sebelumnya, jadi Anda hanya dapat mengonversi format ISO atau format yang didukung oleh pengaturan bahasa saat ini.
2. CONVERT()
Fungsi CONVERT() lebih modern dan maju daripada CAST() karena style konversi dapat ditentukan. Fungsi ini membutuhkan 3 argumen: (1) tipe data yang diinginkan, (2) nilai input, dan (3) nomor style (opsional).
Jika nomor style tidak diteruskan ke fungsi, ia bertindak seperti fungsi CAST(). Namun, jika argumen style diteruskan, ia akan mencoba mengonversi nilai berdasarkan style tersebut. Sebagai contoh, jika kita mencoba mengonversi nilai “13/12/2019” ke tanggal tanpa menentukan nomor style, itu akan gagal karena tidak didukung oleh pengaturan bahasa saat ini:
3. PARSE()
PARSE() adalah fungsi SQL CLR yang menggunakan fungsi .Net framework Parse(). Sintaks PARSE() adalah sebagai berikut:
PARSE(<value> AS <data type> [USING <culture>])
Jika info culture tidak ditentukan, PARSE() bertindak mirip dengan fungsi CAST(), tetapi ketika budaya dilewatkan dalam ekspresi, fungsi mencoba untuk mengubah nilai ke tipe data yang diinginkan menggunakan budaya ini.
Sebagai contoh, jika kita mencoba mengurai nilai 13/12/2019 tanpa meneruskan informasi budaya, itu akan gagal karena “dd/MM/yyyy” tidak didukung oleh pengaturan bahasa default.
4. TRY_CAST(), TRY_CONVERT() and TRY_PARSE()
Salah satu masalah utama dari fungsi konversi tipe data adalah bahwa mereka tidak dapat menangani nilai yang salah. Sebagai contoh, sering kali Anda mungkin menghadapi nilai tanggal yang buruk seperti “01/01/0000”; nilai-nilai ini tidak dapat dikonversi dan akan memunculkan exception konversi data.
Untuk mengatasi masalah ini, Anda dapat menggunakan fungsi TRY_CAST(), TRY_CONVERT() atau TRY_PARSE() untuk memeriksa apakah nilai dapat dikonversi atau tidak, jika demikian, fungsi akan mengembalikan hasil konversi, selain itu akan mengembalikan nilai NULL.
Contoh:
SELECT TRY_CAST('01/01/2000' as date), TRY_CAST('01/01/0000' as date)
Demikianlah penjelasan tentang Convert Date SQL Server saat menggunakan SQL Server, mengonversi string ke date dapat dicapai dengan menggunakan pendekatan ini. Jika Anda tertarik untuk belajar lebih dalam tentang SQL, simak terus seri tutorial SQL di Codekey.id. Situs https://codekey.id/ adalah situs untuk Anda belajar bahasa pemrograman.
Kami menyediakan berbagai tutorial, materi, pembahasan, serta tips dan trik untuk Anda belajar bahasa pemrograman. Jangan lupa untuk ‘allow notification’ dari Codekey agar Anda tidak ketinggalan update tutorial terbaru.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.