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_2507200145499847940 AS DATE USING @pMAIN_2507200145499847941) AS ParsedFrenchDate,
       TRY_PARSE (@pMAIN_2507200145499847942 AS DECIMAL (10, 2) USING @pMAIN_2507200145499847943) AS ParsedFrenchNumber,
       TRY_PARSE (@pMAIN_2507200145499847944 AS MONEY USING @pMAIN_2507200145499847945) AS ParsedGermanMoney,
       TRY_PARSE (@pMAIN_2507200145499847946 AS BIGINT USING @pMAIN_2507200145499847947) AS ParsedNumberWithSeparator,
       TRY_PARSE (@pMAIN_2507200145499847948 AS DATETIME2 USING @pMAIN_2507200145499847949) AS ZHCNResult,
       TRY_PARSE (@pMAIN_250720014549984794_10 AS DATETIME) AS DateTimeResult,
       TRY_PARSE (@pMAIN_250720014549984794_11 AS INT) AS IntResult,
       TRY_PARSE (@pMAIN_250720014549984794_12 AS DECIMAL (8, 2)) AS DecimalResult,
       TRY_PARSE (@pMAIN_250720014549984794_13 AS MONEY) AS MoneyResult,
       TRY_PARSE (@pMAIN_250720014549984794_14 AS DECIMAL (8, 2) USING @pMAIN_250720014549984794_15) AS InEnglish,
       TRY_PARSE (@pMAIN_250720014549984794_16 AS DECIMAL (8, 2) USING @pMAIN_250720014549984794_17) AS inFrench;


            
        

Parameters (If used)

Name Value
@pMAIN_2507200145499847940 09/05/2025
@pMAIN_2507200145499847941 fr-FR
@pMAIN_2507200145499847942 1234,56
@pMAIN_2507200145499847943 fr-FR
@pMAIN_2507200145499847944 1.234,56 €
@pMAIN_2507200145499847945 de-DE
@pMAIN_2507200145499847946 1,234,567
@pMAIN_2507200145499847947 en-US
@pMAIN_2507200145499847948 THURSDAY, 23 february 2023
@pMAIN_2507200145499847949 zh-CN
@pMAIN_250720014549984794_10 02/23/2023
@pMAIN_250720014549984794_11 123.000
@pMAIN_250720014549984794_12 56789
@pMAIN_250720014549984794_13 56789
@pMAIN_250720014549984794_14 30,000
@pMAIN_250720014549984794_15 en-US
@pMAIN_250720014549984794_16 30,000
@pMAIN_250720014549984794_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