TRY_CAST SQL function
1. Various usage of TRY_CAST.
SQL Server Query 1
SELECT TRY_CAST('21474836480' AS INT) AS SafeIntConversion,
TRY_CAST('21474836480' AS BIGINT) AS SafeBigIntConversion,
TRY_CAST('12345' AS MONEY) AS SafeMoneyResult,
CASE WHEN TRY_CAST('QWERTY' AS INT) IS NULL
THEN 'CastFailed' ELSE 'CastSucceeded' END AS CaseResult,
TRY_CAST('ZXCVBNMM' AS INT) AS SafeIntResult,
TRY_CAST(112233.4455 AS INT) AS SafeOtherIntResult,
TRY_CAST(GETDATE() AS TIME) SafeTimeResult,
TRY_CAST(GETDATE() AS VARCHAR(22)) AS SafeDateTimeResult,
TRY_CAST('123.45' AS DECIMAL(6, 2)) AS SafeDecimalResult;
Create SQL query with SqlQueryBuilder 1
var (sql1, parameters1) = new SqlQueryBuilder()
.Select()
.Column(new TRY_CAST("21474836480", SqlDataType.INT), "SafeIntConversion")
.Column(new TRY_CAST("21474836480", SqlDataType.BIGINT), "SafeBigIntConversion")
.Column(new TRY_CAST("12345", SqlDataType.MONEY), "SafeMoneyResult")
.Column(new CASE().When(new IS_NULL(new TRY_CAST("QWERTY", SqlDataType.INT)))
.Then("CastFailed").Else("CastSucceeded"), "CaseResult")
.Column(new TRY_CAST("ZXCVBNMM", SqlDataType.INT), "SafeIntResult")
.Column(new TRY_CAST(112233.4455, SqlDataType.INT), "SafeOtherIntResult")
.Column(new TRY_CAST(new GETDATE(), SqlDataType.TIME), "SafeTimeResult")
.Column(new TRY_CAST(new GETDATE(), SqlDataType.VARCHAR, "22"),"SafeDateTimeResult")
.Column(new TRY_CAST(123.45, SqlDataType.DECIMAL, Tuple.Create(6, 2)), "SafeDecimalResult")
.Build();
Query build by SqlQueryBuilder 1
SELECT TRY_CAST (@pMAIN_2507192027003037720 AS INT) AS SafeIntConversion,
TRY_CAST (@pMAIN_2507192027003037721 AS BIGINT) AS SafeBigIntConversion,
TRY_CAST (@pMAIN_2507192027003037722 AS MONEY) AS SafeMoneyResult,
CASE WHEN TRY_CAST (@pMAIN_2507192027003037723 AS INT) IS NULL THEN @pMAIN_2507192027003037724 ELSE @pMAIN_2507192027003037725 END AS CaseResult,
TRY_CAST (@pMAIN_2507192027003037726 AS INT) AS SafeIntResult,
TRY_CAST (@pMAIN_2507192027003037727 AS INT) AS SafeOtherIntResult,
TRY_CAST (GETDATE() AS TIME) AS SafeTimeResult,
TRY_CAST (GETDATE() AS VARCHAR (22)) AS SafeDateTimeResult,
TRY_CAST (@pMAIN_2507192027003037728 AS DECIMAL (6, 2)) AS SafeDecimalResult;
Parameters (If used)
Name |
Value |
@pMAIN_2507192027003037720 |
21474836480 |
@pMAIN_2507192027003037721 |
21474836480 |
@pMAIN_2507192027003037722 |
12345 |
@pMAIN_2507192027003037723 |
QWERTY |
@pMAIN_2507192027003037724 |
CastFailed |
@pMAIN_2507192027003037725 |
CastSucceeded |
@pMAIN_2507192027003037726 |
ZXCVBNMM |
@pMAIN_2507192027003037727 |
112233.4455 |
@pMAIN_2507192027003037728 |
123.45 |
Query Results 1:
|
SafeIntConversion |
SafeBigIntConversion |
SafeMoneyResult |
CaseResult |
SafeIntResult |
SafeOtherIntResult |
SafeTimeResult |
SafeDateTimeResult |
SafeDecimalResult |
1 |
|
21474836480
|
12345.0000
|
CastFailed
|
|
112233
|
20:27:00.2966667
|
7/19/2025 8:27:00 PM
|
123.45
|
2. Usage of TRY_CAST to show product price with tax.
SQL Server Query 2
SELECT
p.ProductName,
p.UnitPrice,
TRY_CAST(p.UnitPrice * 1.10 AS MONEY) AS PriceWithTax
FROM Products p;
Create SQL query with SqlQueryBuilder 2
var (sql2, parameters2) = new SqlQueryBuilder()
.Select()
.Columns("p.ProductName","p.UnitPrice")
.Column(new TRY_CAST(new ColumnArithmatic("p.UnitPrice").MULTIPLY(1.10), SqlDataType.MONEY), "PriceWithTax")
.From("Products", "p")
.Build();
Query build by SqlQueryBuilder 2
SELECT p.ProductName,
p.UnitPrice,
TRY_CAST (p.UnitPrice * @pMAIN_2507192027003132930 AS MONEY) AS PriceWithTax
FROM Products AS p;
Parameters (If used)
Name |
Value |
@pMAIN_2507192027003132930 |
1.1 |
Query Results 2:
|
ProductName |
UnitPrice |
PriceWithTax |
1 |
Chai
|
18.0000
|
19.8000
|
2 |
Chang
|
19.0000
|
20.9000
|
3 |
Aniseed Syrup
|
10.0000
|
11.0000
|
4 |
Chef Anton's Cajun Seasoning
|
22.0000
|
24.2000
|
5 |
Chef Anton's Gumbo Mix
|
21.3500
|
23.4850
|
6 |
Grandma's Boysenberry Spread
|
25.0000
|
27.5000
|
7 |
Uncle Bob's Organic Dried Pears
|
30.0000
|
33.0000
|
8 |
Northwoods Cranberry Sauce
|
40.0000
|
44.0000
|
9 |
Mishi Kobe Niku
|
97.0000
|
106.7000
|
10 |
Ikura
|
31.0000
|
34.1000
|
11 |
Queso Cabrales
|
21.0000
|
23.1000
|
12 |
Queso Manchego La Pastora
|
38.0000
|
41.8000
|
13 |
Konbu
|
6.0000
|
6.6000
|
14 |
Tofu
|
23.2500
|
25.5750
|
15 |
Genen Shouyu
|
15.5000
|
17.0500
|
16 |
Pavlova
|
17.4500
|
19.1950
|
17 |
Alice Mutton
|
39.0000
|
42.9000
|
18 |
Carnarvon Tigers
|
62.5000
|
68.7500
|
19 |
Teatime Chocolate Biscuits
|
9.2000
|
10.1200
|
20 |
Sir Rodney's Marmalade
|
81.0000
|
89.1000
|
21 |
Sir Rodney's Scones
|
10.0000
|
11.0000
|
22 |
Gustaf's Knäckebröd
|
21.0000
|
23.1000
|
23 |
Tunnbröd
|
9.0000
|
9.9000
|
24 |
Guaraná Fantástica
|
4.5000
|
4.9500
|
25 |
NuNuCa Nuß-Nougat-Creme
|
14.0000
|
15.4000
|
26 |
Gumbär Gummibärchen
|
31.2300
|
34.3530
|
27 |
Schoggi Schokolade
|
43.9000
|
48.2900
|
28 |
Rössle Sauerkraut
|
45.6000
|
50.1600
|
29 |
Thüringer Rostbratwurst
|
123.7900
|
136.1690
|
30 |
Nord-Ost Matjeshering
|
25.8900
|
28.4790
|
31 |
Gorgonzola Telino
|
12.5000
|
13.7500
|
32 |
Mascarpone Fabioli
|
32.0000
|
35.2000
|
33 |
Geitost
|
2.5000
|
2.7500
|
34 |
Sasquatch Ale
|
14.0000
|
15.4000
|
35 |
Steeleye Stout
|
18.0000
|
19.8000
|
36 |
Inlagd Sill
|
19.0000
|
20.9000
|
37 |
Gravad lax
|
26.0000
|
28.6000
|
38 |
Côte de Blaye
|
263.5000
|
289.8500
|
39 |
Chartreuse verte
|
18.0000
|
19.8000
|
40 |
Boston Crab Meat
|
18.4000
|
20.2400
|
41 |
Jack's New England Clam Chowder
|
9.6500
|
10.6150
|
42 |
Singaporean Hokkien Fried Mee
|
14.0000
|
15.4000
|
43 |
Ipoh Coffee
|
46.0000
|
50.6000
|
44 |
Gula Malacca
|
19.4500
|
21.3950
|
45 |
Rogede sild
|
9.5000
|
10.4500
|
46 |
Spegesild
|
12.0000
|
13.2000
|
47 |
Zaanse koeken
|
9.5000
|
10.4500
|
48 |
Chocolade
|
12.7500
|
14.0250
|
49 |
Maxilaku
|
20.0000
|
22.0000
|
50 |
Valkoinen suklaa
|
16.2500
|
17.8750
|
51 |
Manjimup Dried Apples
|
53.0000
|
58.3000
|
52 |
Filo Mix
|
7.0000
|
7.7000
|
53 |
Perth Pasties
|
32.8000
|
36.0800
|
54 |
Tourtière
|
7.4500
|
8.1950
|
55 |
Pâté chinois
|
24.0000
|
26.4000
|
56 |
Gnocchi di nonna Alice
|
38.0000
|
41.8000
|
57 |
Ravioli Angelo
|
19.5000
|
21.4500
|
58 |
Escargots de Bourgogne
|
13.2500
|
14.5750
|
59 |
Raclette Courdavault
|
55.0000
|
60.5000
|
60 |
Camembert Pierrot
|
34.0000
|
37.4000
|
61 |
Sirop d'érable
|
28.5000
|
31.3500
|
62 |
Tarte au sucre
|
49.3000
|
54.2300
|
63 |
Vegie-spread
|
43.9000
|
48.2900
|
64 |
Wimmers gute Semmelknödel
|
33.2500
|
36.5750
|
65 |
Louisiana Fiery Hot Pepper Sauce
|
21.0500
|
23.1550
|
66 |
Louisiana Hot Spiced Okra
|
17.0000
|
18.7000
|
67 |
Laughing Lumberjack Lager
|
14.0000
|
15.4000
|
68 |
Scottish Longbreads
|
12.5000
|
13.7500
|
69 |
Gudbrandsdalsost
|
36.0000
|
39.6000
|
70 |
Outback Lager
|
15.0000
|
16.5000
|
71 |
Flotemysost
|
21.5000
|
23.6500
|
72 |
Mozzarella di Giovanni
|
34.8000
|
38.2800
|
73 |
Röd Kaviar
|
15.0000
|
16.5000
|
74 |
Longlife Tofu
|
10.0000
|
11.0000
|
75 |
Rhönbräu Klosterbier
|
7.7500
|
8.5250
|
76 |
Lakkalikööri
|
18.0000
|
19.8000
|
77 |
Original Frankfurter grüne Soße
|
13.0000
|
14.3000
|