PARSE (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengembalikan hasil ekspresi, yang diterjemahkan ke jenis data yang diminta di SQL Server.
Sintaks
PARSE ( string_value AS data_type [ USING culture ] )
Argumen
string_value
nilai nvarchar(4000) yang mewakili nilai yang diformat untuk diurai ke dalam jenis data yang ditentukan.
string_value harus merupakan representasi yang valid dari jenis data yang diminta, atau PARSE menimbulkan kesalahan.
data_type
Nilai harfiah yang mewakili jenis data yang diminta untuk hasilnya.
budaya
String opsional yang mengidentifikasi budaya tempat string_value diformat.
Jika argumen budaya tidak disediakan, maka bahasa sesi saat ini digunakan. Bahasa ini diatur secara implisit, atau eksplisit dengan menggunakan pernyataan SET LANGUAGE. budaya menerima budaya apa pun yang didukung oleh .NET Framework; tidak terbatas pada bahasa yang secara eksplisit didukung oleh SQL Server. Jika argumen budaya tidak valid, PARSE akan menimbulkan kesalahan.
Jenis Kembalian
Mengembalikan hasil ekspresi, yang diterjemahkan ke jenis data yang diminta.
Keterangan
Nilai null yang diteruskan sebagai argumen ke PARSE diperlakukan dengan dua cara:
Jika konstanta null diteruskan, kesalahan akan muncul. Nilai null tidak dapat diurai ke dalam jenis data yang berbeda dengan cara yang sadar budaya.
Jika parameter dengan nilai null diteruskan pada waktu proses, maka null dikembalikan, untuk menghindari pembatalan seluruh batch.
Gunakan PARSE hanya untuk mengonversi dari string ke tanggal/waktu dan jenis angka. Untuk konversi jenis umum, terus gunakan CAST atau CONVERT. Perlu diingat bahwa ada overhead performa tertentu dalam mengurai nilai string.
PARSE bergantung pada keberadaan .NET Framework Common Language Runtime (CLR).
Fungsi ini tidak akan di-remote karena tergantung pada keberadaan CLR. Jarak jauh fungsi yang memerlukan CLR akan menyebabkan kesalahan pada server jarak jauh.
Informasi selengkapnya tentang parameter data_type
Nilai untuk parameter data_type dibatasi untuk jenis yang diperlihatkan dalam tabel berikut, bersama dengan gaya. Informasi gaya disediakan untuk membantu menentukan jenis pola apa yang diizinkan. Untuk informasi selengkapnya tentang gaya, lihat dokumentasi .NET Framework untuk enumerasi System.Globalization.NumberStyles dan DateTimeStyles .
Kategori | Jenis | Jenis .NET Framework | Gaya yang digunakan |
---|---|---|---|
Numerik | bigint | Int64 | NumberStyles.Number |
Numerik | int | Int32 | NumberStyles.Number |
Numerik | smallint | Int16 | NumberStyles.Number |
Numerik | tinyint | Byte | NumberStyles.Number |
Numerik | desimal | Decimal | NumberStyles.Number |
Numerik | numeric | Decimal | NumberStyles.Number |
Numerik | float | Laju | NumberStyles.Float |
Numerik | real | Tunggal | NumberStyles.Float |
Numerik | smallmoney | Decimal | NumberStyles.Currency |
Numerik | money | Decimal | NumberStyles.Currency |
Tanggal dan Waktu | date | DateTime | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Tanggal dan Waktu | waktu | TimeSpan | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Tanggal dan Waktu | datetime | DateTime | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Tanggal dan Waktu | smalldatetime | DateTime | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Tanggal dan Waktu | tanggalwaktu2 | DateTime | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Tanggal dan Waktu | tanggalwaktulewat | DateTimeOffset | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Informasi selengkapnya tentang parameter budaya
Tabel berikut ini memperlihatkan pemetaan dari bahasa SQL Server ke budaya .NET Framework.
Nama lengkap | Alias | LCID | Budaya tertentu |
---|---|---|---|
us_english | Inggris | 1033 | id-ID |
Deutsch | Jerman | 1031 | de-DE |
Français | Prancis | 1036 | fr-FR |
日本語 | Jepang | 1041 | ja-JP |
Dansk | Dansk | 1030 | da-DK |
Español | Spanyol | 3082 | es-ES |
Italiano | Italia | 1040 | it-IT |
Nederlands | Belanda | 1043 | nl-NL |
Norsk | Norwegia | 2068 | nn-NO |
Português | Portugis | 2070 | pt-PT |
Suomi | Suomi | 1035 | fi-FI |
Svenska | Swedia | 1053 | sv-SE |
čeština | Cheska | 1029 | Cs-CZ |
magyar | Hungaria | 1038 | Hu-HU |
polski | Polski | 1045 | Pl-PL |
română | Rumania | 1048 | Ro-RO |
hrvatski | Kroasia | 1050 | hr-HR |
slovenčina | Slovak | 1051 | Sk-SK |
slovenski | Sloven | 1060 | Sl-SI |
ελληνικά | Yunani | 1032 | El-GR |
български | Bulgaria | 1026 | bg-BG |
русский | Rusia | 1049 | Ru-RU |
Türkçe | Turki | 1055 | Tr-TR |
Inggris | Inggris Inggris | 2057 | en-GB |
eesti | Esti | 1061 | Et-EE |
latviešu | Latvi | 1062 | lv-LV |
lietuvių | Lituavi | 1063 | lt-LT |
Português (Brasil) | Brasil | 1046 | pt-BR |
繁體中文 | Mandarin Tradisional | 1028 | zh-TW |
한국어 | Korea | 1042 | Ko-KR |
简体中文 | Bahasa Tionghoa Sederhana | 2052 | zh-CN |
Arab | Arab | 1025 | ar-SA |
ไทย | Thailand | 1054 | Th-TH |
Contoh
J. PARSE ke datetime2
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result;
Berikut set hasilnya.
Result
---------------
2010-12-13 00:00:00.0000000
(1 row(s) affected)
B. PARSE dengan simbol mata uang
SELECT PARSE('€345,98' AS money USING 'de-DE') AS Result;
Berikut set hasilnya.
Result
---------------
345.98
(1 row(s) affected)
C. PARSE dengan pengaturan bahasa implisit
-- The English language is mapped to en-US specific culture
SET LANGUAGE 'English';
SELECT PARSE('12/16/2010' AS datetime2) AS Result;
Berikut set hasilnya.
Result
---------------
2010-12-16 00:00:00.0000000
(1 row(s) affected)