星期五, 7月 05, 2013

[SQL] PARSE() 和 TRY_PARSE()

PARSE 和 TRY_PARSE 為 SQL Server 2012 的新功能,僅適用於從字串轉換到日期/時間及數字類型,請注意,剖析字串值將對效能造成一定程度的負擔。
  • 語法:
    • PARSE ( string_value AS data_type [ USING culture ] )
    • TRY_PARSE ( string_value AS data_type [ USING culture ] )
  • 引數:
    • string_value: nvarchar (4000) 值,代表要剖析為指定之資料類型的格式化值。
    • data_type:
      • PARSE:表示結果之資料類型的常值。
      • TRY_PARSE:以文字表示結果所要求的資料類型。
    • culture:指出 string_value 據以格式化之文化特性的選用字串。如未提供 culture 引數,將會使用目前工作階段的語言。 此語言是以 SET LANGUAGE 陳述式隱含或明確加以設定。
  • 傳回類型:
    • PARSE:傳回轉譯成所要求之資料類型的運算式結果。
    • TRY_PARSE:將傳回運算式結果,並轉譯為所要求的資料類型;若轉換失敗,則傳回 Null。

簡易範例
-- 日期
SELECT PARSE('2013/2/6 下午 07:51:29' AS datetime using 'zh-tw') AS N'台灣日期'
SELECT TRY_PARSE('2013/2/6 下午 07:51:29' AS datetime using 'en-us') AS N'美國日期'
-- 貨幣
SELECT PARSE('NT$123,45' AS money USING 'zh-TW') N'台幣'
SELECT TRY_PARSE('NT$123,45' AS money USING 'en-us') N'美金'
故意引發錯誤
SELECT PARSE('2013/2/6 下午 07:51:29' AS datetime using 'en-us') AS N'美國日期'

沒有留言:

張貼留言