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

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

Di SQL Server, Anda dapat menggunakan CAST() berfungsi untuk mengubah ekspresi dari satu tipe data ke tipe data lainnya. Fungsi ini bekerja hampir sama dengan CONVERT() fungsi, kecuali bahwa sintaksnya sedikit berbeda (dan CAST() tidak menerima style argumen).

Jadi, jika Anda perlu mengonversi string ke nilai tanggal/waktu, Anda dapat menggunakan CONVERT() fungsi atau CAST() fungsi.

Dan jika Anda mendapatkan kesalahan saat menggunakan kedua fungsi tersebut, PARSE() fungsi mungkin yang Anda butuhkan.

Artikel ini berisi contoh penggunaan CAST() fungsi.

Sintaks

Sintaksnya seperti ini:

CAST ( expression AS data_type [ ( length ) ] )

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 .

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 kedua).

SELECT CAST('20 Dec 2018' AS date) AS Result;

Hasil:

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

Sama seperti dengan CONVERT() string harus dalam gaya yang dapat dikonversi ke tipe data yang ditentukan, jika tidak, Anda akan mendapatkan kesalahan:

SELECT CAST('Homer' AS date) 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 CAST('20 Dec 2018' AS datetime) AS Result;

Hasil:

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

Anda juga dapat menentukan waktu bersama dengan tanggal:

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

Hasil:

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

Contoh 3 – Konversi ke Tipe Data datetime2

Di sini kami mengonversi ke datetime2 tipe data:

SELECT CAST('20 Dec 2018' AS datetime2) 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 CAST('20 Dec 2018' AS datetimeoffset) AS Result;

Hasil:

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

Contoh 5 – Konversikan ke Tipe Data waktu tanggal kecil

Di sini kami mengonversi ke waktu kecil tipe data:

SELECT CAST('20 Dec 2018' AS smalldatetime) 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 CAST('20 Dec 2018' AS time) 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 CAST('2pm' AS time) 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 CAST('2pm 20 Dec 2018' AS time) 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 CAST('2pm' AS datetime) AS Result;

Hasil:

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

Jika Anda lebih suka menggunakan untuk menggunakan CONVERT() fungsi, lihat string ini ke tanggal/waktu CONVERT() contoh menggunakan contoh yang sama seperti di atas.

Juga, seperti yang disebutkan, jika Anda mendapatkan kesalahan saat mencoba mengonversi string menjadi tanggal, coba PARSE() fungsi sebagai gantinya. Ini akan berfungsi dalam beberapa kasus di mana CAST() tidak.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menambahkan Batasan kunci Asing ke tabel yang ada di SQL Server - Tutorial SQL Server / TSQL Bagian 68

  2. Catatan acak dari tabel database (T-SQL)

  3. SQL Server String atau data biner akan terpotong

  4. Bagaimana saya bisa memasukkan data ke SQL Server menggunakan VBNet?

  5. Memformat Nomor Telepon di SQL Server (T-SQL)