บทความนี้จะแสดงรายละเอียดวิธีใช้ฟังก์ชันแปลงชนิดข้อมูล TRY_CAST ใน SQL Server พร้อมไวยากรณ์และตัวอย่างเฉพาะ เพื่อให้เห็นและเข้าใจฟังก์ชันได้ดีขึ้น
คำอธิบาย
ฟังก์ชัน TRY_CAST ใน SQL Server แปลงนิพจน์จากชนิดข้อมูลหนึ่งไปอีกชนิดหนึ่ง หากการแปลงล้มเหลว TRY_CAST จะส่งคืน NULL มิฉะนั้นจะส่งคืนค่าการแปลงที่ตรงกัน
ไวยากรณ์
เพื่อใช้ฟังก์ชัน TRY_CAST ใน SQL Server เราใช้ไวยากรณ์ดังนี้:
TRY_CAST(bieuthuc AS kieudulieu [(do_dai)])
พารามิเตอร์ :
- bieuthuc: ค่าที่จะแปลงเป็นชนิดข้อมูลอื่น อาจเป็นชื่อคอลัมน์ในตารางหรือนิพจน์คำนวณที่ต้องแปลงเป็นชนิดข้อมูลใหม่
- kieudulieu: ชื่อชนิดข้อมูลใหม่ที่นิพจน์จะถูกแปลงไป อาจเป็นหนึ่งใน: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary หรือ image
- do_dai (ตัวเลือก): ความยาวชนิดข้อมูลสำหรับผลลัพธ์ของ char, varchar, nchar, nvarchar, binary และ varbinary
หมายเหตุ :
- เมื่อแปลง float หรือ numeric เป็น int จำนวนเต็ม ฟังก์ชัน TRY_CAST จะตัดส่วนทศนิยมด้านหลัง
- ดูเพิ่มเติม CAST, CONVERT และ TRY_CONVERT functions
- TRY_CAST สามารถใช้ใน SQL Server รุ่นใหม่ๆ: 2017, 2016, 2014, 2012
ตัวอย่าง
ดูและสำรวจตัวอย่างฟังก์ชัน TRY_CAST ใน SQL Server
SELECT TRY_CAST(14.85 AS int);
Result: 14
(ผลลัพธ์เป็นค่า int ตัดส่วนทศนิยม)
SELECT TRY_CAST(14.85 AS float);
Result: 14.85
(ผลลัพธ์ส่งคืนเป็นค่า float ไม่ถูกตัด)
SELECT TRY_CAST('14 Main St.' AS float);
Result: NULL
(ผลลัพธ์เป็น NULL เพราะไม่สามารถแปลงสตริงนี้เป็น float ได้)
SELECT TRY_CAST(15.6 AS varchar);
Result: '15.6'
(ผลลัพธ์ส่งคืนเป็น varchar)
SELECT TRY_CAST(15.6 AS varchar(2));
Result: NULL
(ผลลัพธ์เป็น NULL เพราะการแปลงไม่สำเร็จ ค่าไม่เข้ากับ varchar ความยาว 2 ตัวอักษร)
SELECT TRY_CAST('2018-09-13' AS datetime);
Result: '2018-09-13 00:00:00.000'
(ผลลัพธ์ส่งคืนเป็น datetime)