Bagikan melalui


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.

Konvensi sintaks transact-SQL

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:

  1. Jika konstanta null diteruskan, kesalahan akan muncul. Nilai null tidak dapat diurai ke dalam jenis data yang berbeda dengan cara yang sadar budaya.

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