TRY_PARSE SQL function


1. Various usage of TRY_PARSE.

SQL Server Query 1

            
SELECT TRY_PARSE('09/05/2025' AS DATE USING 'fr-FR') AS ParsedFrenchDate,  
TRY_PARSE('1234,56' AS DECIMAL(10, 2) USING 'fr-FR') AS ParsedFrenchNumber,
TRY_PARSE('1.234,56 €' AS MONEY USING 'de-DE') AS ParsedGermanMoney,
TRY_PARSE('1,234,567' AS BIGINT USING 'en-US') AS ParsedNumberWithSeparator,
TRY_PARSE('THURSDAY, 23 february 2023' AS datetime2 USING 'zh-CN') AS ZHCNResult,
TRY_PARSE('02/23/2023' AS DATETIME) AS DateTimeResult,
TRY_PARSE('123.000' AS INT) AS IntResult,
TRY_PARSE('56789' AS DECIMAL(8, 2)) AS DecimalResult,
TRY_PARSE('56789' AS MONEY) AS MoneyResult,
TRY_PARSE('30,000' AS decimal(8,2) USING 'en-US') AS InEnglish,
TRY_PARSE('30,000' AS decimal(8,2) USING 'fr-FR') AS InFrench;

Create SQL query with SqlQueryBuilder 1

            
var (sql1, parameters1) = new SqlQueryBuilder()  
.Select()
.Column(new TRY_PARSE("09/05/2025", SqlDataType.DATE, "fr-FR"),"ParsedFrenchDate")
.Column(new TRY_PARSE("1234,56", SqlDataType.DECIMAL, Tuple.Create(10, 2), "fr-FR"), "ParsedFrenchNumber")
.Column(new TRY_PARSE("1.234,56 €", SqlDataType.MONEY, "de-DE"), "ParsedGermanMoney")
.Column(new TRY_PARSE("1,234,567", SqlDataType.BIGINT, "en-US"), "ParsedNumberWithSeparator")
.Column(new TRY_PARSE("THURSDAY, 23 february 2023", SqlDataType.DATETIME2, "zh-CN"), "ZHCNResult")
.Column(new TRY_PARSE("02/23/2023", SqlDataType.DATETIME), "DateTimeResult")
.Column(new TRY_PARSE("123.000", SqlDataType.INT), "IntResult")
.Column(new TRY_PARSE("56789", SqlDataType.DECIMAL, Tuple.Create(8,2)),"DecimalResult")
.Column(new TRY_PARSE("56789", SqlDataType.MONEY), "MoneyResult")
.Column(new TRY_PARSE("30,000", SqlDataType.DECIMAL, Tuple.Create(8, 2), "en-US"), "InEnglish")
.Column(new TRY_PARSE("30,000", SqlDataType.DECIMAL, Tuple.Create(8, 2), "fr-FR"), "InFrench")
.Build();

Query build by SqlQueryBuilder 1

            
SELECT TRY_PARSE (@pMAIN_2507192028243598160 AS DATE USING @pMAIN_2507192028243598161) AS ParsedFrenchDate,
       TRY_PARSE (@pMAIN_2507192028243598162 AS DECIMAL (10, 2) USING @pMAIN_2507192028243598163) AS ParsedFrenchNumber,
       TRY_PARSE (@pMAIN_2507192028243598164 AS MONEY USING @pMAIN_2507192028243598165) AS ParsedGermanMoney,
       TRY_PARSE (@pMAIN_2507192028243598166 AS BIGINT USING @pMAIN_2507192028243598167) AS ParsedNumberWithSeparator,
       TRY_PARSE (@pMAIN_2507192028243598168 AS DATETIME2 USING @pMAIN_2507192028243598169) AS ZHCNResult,
       TRY_PARSE (@pMAIN_250719202824359816_10 AS DATETIME) AS DateTimeResult,
       TRY_PARSE (@pMAIN_250719202824359816_11 AS INT) AS IntResult,
       TRY_PARSE (@pMAIN_250719202824359816_12 AS DECIMAL (8, 2)) AS DecimalResult,
       TRY_PARSE (@pMAIN_250719202824359816_13 AS MONEY) AS MoneyResult,
       TRY_PARSE (@pMAIN_250719202824359816_14 AS DECIMAL (8, 2) USING @pMAIN_250719202824359816_15) AS InEnglish,
       TRY_PARSE (@pMAIN_250719202824359816_16 AS DECIMAL (8, 2) USING @pMAIN_250719202824359816_17) AS inFrench;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192028243598160 09/05/2025
@pMAIN_2507192028243598161 fr-FR
@pMAIN_2507192028243598162 1234,56
@pMAIN_2507192028243598163 fr-FR
@pMAIN_2507192028243598164 1.234,56 €
@pMAIN_2507192028243598165 de-DE
@pMAIN_2507192028243598166 1,234,567
@pMAIN_2507192028243598167 en-US
@pMAIN_2507192028243598168 THURSDAY, 23 february 2023
@pMAIN_2507192028243598169 zh-CN
@pMAIN_250719202824359816_10 02/23/2023
@pMAIN_250719202824359816_11 123.000
@pMAIN_250719202824359816_12 56789
@pMAIN_250719202824359816_13 56789
@pMAIN_250719202824359816_14 30,000
@pMAIN_250719202824359816_15 en-US
@pMAIN_250719202824359816_16 30,000
@pMAIN_250719202824359816_17 fr-FR

Query Results 1:

  ParsedFrenchDate ParsedFrenchNumber ParsedGermanMoney ParsedNumberWithSeparator ZHCNResult DateTimeResult IntResult DecimalResult MoneyResult InEnglish InFrench
1 5/9/2025 12:00:00 AM 1234.56 1234.5600 1234567 2/23/2023 12:00:00 AM 2/23/2023 12:00:00 AM 123 56789.00 56789.0000 30000.00 30.00