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

Cara Mengonversi String ke Tanggal/Waktu di SQL Server menggunakan CONVERT()

Di SQL Server, Anda dapat menggunakan CONVERT() berfungsi untuk mengubah ekspresi dari satu tipe data ke tipe data lainnya. Oleh karena itu, jika Anda perlu mengonversi string ke format tanggal/waktu, fungsi ini dapat membantu.

Artikel ini berisi contoh untuk mendemonstrasikan penggunaannya.

Sintaks

Sintaksnya seperti ini:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Argumen ini didefinisikan sebagai berikut:

expression
Ekspresi apa pun yang valid.
data_type
Tipe data target. Ini termasuk xmlbesar , dan sql_variant . Tipe data alias tidak dapat digunakan.
length
Integer opsional yang menentukan panjang tipe data target. Nilai defaultnya adalah 30 .
style
Sebuah ekspresi integer yang menentukan bagaimana CONVERT() fungsi akan menerjemahkan ekspresi . Untuk nilai gaya NULL, NULL dikembalikan. tipe_data menentukan jangkauan.

Contoh 1 – Konversi ke Tipe Data tanggal

Dalam contoh ini, kami mengonversi string menjadi tanggal tipe data (kami menentukan ini dengan menggunakan date sebagai argumen pertama).

SELECT CONVERT(date, '20 Dec 2018') AS Result;

Hasil:

+------------+
| Result     |
|------------|
| 2018-12-20 |
+------------+

Tentu saja, string harus dalam gaya yang dapat dikonversi ke tipe data yang ditentukan, jika tidak, Anda akan mendapatkan kesalahan:

SELECT CONVERT(date, 'Homer') AS Result;

Hasil:

Conversion failed when converting date and/or time from character string.

Contoh 2 – Konversi ke Tipe Data datetime

Dalam contoh ini kita mengonversi ke datetime tipe data:

SELECT CONVERT(datetime, '20 Dec 2018') AS Result;

Hasil:

+-------------------------+
| Result                  |
|-------------------------|
| 2018-12-20 00:00:00.000 |
+-------------------------+

Anda juga dapat menentukan waktu:

SELECT CONVERT(datetime, '2pm 20 Dec 2018') AS Result;

Hasil:

+-------------------------+
| Result                  |
|-------------------------|
| 2018-12-20 14:00:00.000 |
+-------------------------+

Contoh 3 – Konversi ke Tipe Data datetime2

Dalam contoh ini kita mengonversi ke datetime2 tipe data:

SELECT CONVERT(datetime2, '20 Dec 2018') AS Result;

Hasil:

+-----------------------------+
| Result                      |
|-----------------------------|
| 2018-12-20 00:00:00.0000000 |
+-----------------------------+

Contoh 4 – Konversi ke Tipe Data datetimeoffset

Dalam contoh ini kami mengonversi ke datetimeoffset tipe data:

SELECT CONVERT(datetimeoffset, '20 Dec 2018') AS Result;

Hasil:

+------------------------------------+
| Result                             |
|------------------------------------|
| 2018-12-20 00:00:00.0000000 +00:00 |
+------------------------------------+

Contoh 5 – Konversikan ke Tipe Data waktu tanggal kecil

Dalam contoh ini kita mengonversi ke smalldatetime tipe data:

SELECT CONVERT(smalldatetime, '20 Dec 2018') AS Result;

Hasil:

+---------------------+
| Result              |
|---------------------|
| 2018-12-20 00:00:00 |
+---------------------+

Contoh 6 – Konversikan ke Tipe Data waktu

Dalam contoh ini kita mengonversi ke waktu tipe data:

SELECT CONVERT(time, '20 Dec 2018') AS Result;

Hasil:

+----------+
| Result   |
|----------|
| 00:00:00 |
+----------+

Dalam hal ini, kami menetapkan tanggal tetapi bukan waktu, sehingga kembali sebagai 00:00:00 . Berikut contoh lain di mana kami benar-benar menentukan waktu:

SELECT CONVERT(time, '2pm') AS Result;

Hasil:

+----------+
| Result   |
|----------|
| 14:00:00 |
+----------+

Tetapi jika kita menambahkan tanggal, kita mendapatkan kesalahan (tidak seperti contoh sebelumnya ketika kita mengonversi ke datetime ):

SELECT CONVERT(time, '2pm 20 Dec 2018') AS Result;

Hasil:

Conversion failed when converting date and/or time from character string.

Jadi dalam hal ini Anda harus mengonversi ke datetime atau waktu kecil .

Contoh 7 – Menghilangkan Tanggal

Jika Anda menghilangkan tanggal saat mengonversi ke waktu tanggal atau waktu kecil jenis data, itu akan mengembalikan 1900-01-01 sebagai tanggal:

SELECT CONVERT(datetime, '2pm') AS Result;

Hasil:

+-------------------------+
| Result                  |
|-------------------------|
| 1900-01-01 14:00:00.000 |
+-------------------------+

Jika Anda mendapatkan kesalahan saat mencoba mengonversi string menjadi tanggal, coba PARSE() fungsi sebagai gantinya. Ini akan berfungsi dalam beberapa kasus di mana CONVERT() tidak.

Anda mungkin juga ingin melihat CAST() function, yang merupakan cara standar ANSI SQL untuk mengonversi antar tipe data. Berikut Cara Mengonversi String ke Tanggal/Waktu menggunakan CAST() .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Kolom "Terakhir Dimodifikasi" di SQL Server

  2. Dapatkan ID Login Saat Ini di SQL Server (T-SQL)

  3. Menyisipkan baris ke dalam tabel dengan satu kolom IDENTITAS saja

  4. Buat Tabel Sementara di SQL Server

  5. Kapan menggunakan Common Table Expression (CTE)