共用方式為


PARSE (Transact-SQL)

傳回轉譯成 SQL Server 中所要求資料類型的運算式結果。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

主題連結圖示 Transact-SQL 語法慣例

語法

PARSE ( string_value AS data_type [ USING culture ] )

引數

  • string_value
    nvarchar(4000) 值,代表要剖析為指定之資料類型的格式化值。

    string_value 必須是所要求之資料類型的有效表示法,否則 PARSE 會引發錯誤。

  • data_type
    表示結果之資料類型的常值。

  • culture
    指出 string_value 據以格式化之文化特性的選用字串。

    如未提供 culture 引數,將會使用目前工作階段的語言。 此語言是以 SET LANGUAGE 陳述式隱含或明確加以設定。 culture 接受 .NET Framework 所支援的任何文化特性,不限於 SQL Server 明確支援的語言。 如果 culture 引數無效,PARSE 會引發錯誤。

傳回類型

傳回轉譯成所要求之資料類型的運算式結果。

備註

以引數形式傳遞給 PARSE 的 Null 值,會以下列兩種方式處理:

  1. 如果傳遞了 NULL 常數就會引發錯誤。 Null 值無法以特定文化特定方式剖析為不同的資料類型。

  2. 如果在執行階段傳遞了 null 值的參數,將會傳回 null,以避免整個批次遭到取消。

PARSE 僅適用於從字串轉換到日期/時間及數字類型。 一般類型轉換仍可繼續使用 CAST 或 CONVERT。 請注意,剖析字串值將對效能造成一定程度的負擔。

PARSE 必須仰賴既存的 .NET Framework Common Language Runtime (CLR)。

因為必須要有 CLR 才可執行此函數,所以無法從遠端進行。 從遠端處理需要 CLR 的函數,會導致遠端伺服器發生錯誤。

data_type 參數的詳細資訊

data_type 的參數值僅適用於下表所示的類型與樣式。 此處所提供的樣式資訊可以協助您決定所要允許的模式類型。 如需有關樣式的詳細資訊,請參閱 .NET Framework 文件集中的 System.Globalization.NumberStyles 和 DateTimeStyles 列舉。

類別目錄

型別

.NET Framework 類型

使用的樣式

數值

bigint

Int64

NumberStyles.Number

數值

int

Int32

NumberStyles.Number

數值

smallint

Int16

NumberStyles.Number

數值

tinyint

Byte

NumberStyles.Number

數值

decimal

Decimal

NumberStyles.Number

數值

numeric

Decimal

NumberStyles.Number

數值

float

Double

NumberStyles.Float

數值

real

Single

NumberStyles.Float

數值

smallmoney

Decimal

NumberStyles.Currency

數值

money

Decimal

NumberStyles.Currency

日期及時間

date

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

日期和時間

time

TimeSpan

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

日期和時間

datetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

日期和時間

smalldatetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

日期和時間

datetime2

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

日期和時間

datetimeoffset

DateTimeOffset

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

文化特性參數的詳細資訊

下表顯示 SQL Server 語言所對應的 .NET Framework 文化特性。

全名

別名

LCID

專屬文化特性

us_english

英文

1033

en-US

Deutsch

德文

1031

de-DE

Français

法文

1036

fr-FR

日本語

日文

1041

ja-JP

Dansk

丹麥文

1030

da-DK

Español

西班牙文

3082

es-ES

Italiano

義大利文

1040

it-IT

Nederlands

荷蘭文

1043

nl-NL

Norsk

挪威文

2068

nn-NO

Português

葡萄牙文

2070

pt-PT

Suomi

芬蘭文

1035

fi

Svenska

瑞典文

1053

sv-SE

čeština

捷克文

1029

Cs-CZ

magyar

匈牙利文

1038

Hu-HU

polski

波蘭文

1045

Pl-PL

română

羅馬尼亞文

1048

Ro-RO

hrvatski

克羅埃西亞文

1050

hr-HR

slovenčina

斯洛伐克文

1051

Sk-SK

slovenski

斯洛維尼亞文

1060

Sl-SI

ελληνικά

希臘文

1032

El-GR

български

保加利亞文

1026

bg-BG

русский

俄文

1049

Ru-RU

Türkçe

土耳其文

1055

Tr-TR

British

英式英文

2057

en-GB

eesti

愛沙尼亞文

1061

Et-EE

latviešu

拉脫維亞文

1062

lv-LV

lietuvių

立陶宛文

1063

lt-LT

Português (Brasil)

巴西文

1046

pt-BR

繁體中文

繁體中文

1028

zh-TW

한국어

韓文

1042

Ko-KR

简体中文

簡體中文

2052

zh-CN

Arabic

阿拉伯文

1025

ar-SA

ไทย

泰文

1054

Th-TH

範例

A.剖析為 datetime2

SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result;

以下為結果集:

Result
---------------
2010-12-13 00:00:00.0000000

(1 row(s) affected)

B.使用貨幣符號進行剖析

SELECT PARSE('€345,98' AS money USING 'de-DE') AS Result;

以下為結果集:

Result
---------------
345.98

(1 row(s) affected)

C.使用語言的隱含設定進行剖析

-- The English language is mapped to en-US specific culture
SET LANGUAGE 'English';
SELECT PARSE('12/16/2010' AS datetime2) AS Result;

以下為結果集:

Result
---------------
2010-12-16 00:00:00.0000000

(1 row(s) affected)