Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

ฟังก์ชัน TRY_CAST ใน SQL Server

บทความนี้จะแสดงรายละเอียดเกี่ยวกับวิธีใช้ฟังก์ชันการแปลงประเภทข้อมูล TRY_CAST ใน SQL Server พร้อมไวยากรณ์และตัวอย่างเฉพาะเพื่อให้เห็นภาพและจับภาพฟังก์ชันได้ดียิ่งขึ้น

อธิบาย

ฟังก์ชัน TRY_CAST ใน SQL Server จะแปลงนิพจน์จากประเภทข้อมูลหนึ่งเป็นอีกประเภทหนึ่ง หากการแปลงล้มเหลว TRY_CAST จะคืนค่า NULL ไม่เช่นนั้นจะคืนค่าการแปลงที่เกี่ยวข้อง

ไวยากรณ์

หากต้องการใช้ฟังก์ชัน TRY_CAST ใน SQL Server เราใช้ไวยากรณ์ต่อไปนี้:

 TRY_CAST(bieuthuc AS kieudulieu [(do_dai)]) 

พารามิเตอร์ :

  1. bieutuc: ค่าที่จะแปลงเป็นข้อมูลประเภทอื่น อาจเป็นชื่อของคอลัมน์ในตารางหรือนิพจน์การคำนวณที่ต้องแปลงเป็นชนิดข้อมูลใหม่
  2. kieudulieu: ชื่อชนิดข้อมูลใหม่ที่จะแปลงนิพจน์ อาจเป็นหนึ่งในสิ่งต่อไปนี้:bigint, int, smallint, tinyint, บิต, ทศนิยม, ตัวเลข, เงิน, smallmoney, float, จริง, datetime, smalldatetime, char, varchar, ข้อความ, nchar, nvarchar, ntext, binary, varbinary หรือ ภาพ
  3. do_dai (ไม่บังคับ):ความยาวของประเภทข้อมูลสำหรับผลลัพธ์ของ char, varchar, nchar, nvarchar, binary และ varbinary

หมายเหตุ :

  1. เมื่อแปลงข้อมูลทศนิยมหรือตัวเลขเป็นจำนวนเต็ม ฟังก์ชัน TRY_CAST จะตัดส่วนทศนิยมออก
  2. ดูฟังก์ชัน CAST, CONVERT และ TRY_CONVERT ด้วย
  3. TRY_CAST สามารถใช้ได้ในเวอร์ชันที่ใหม่กว่าของ SQL Server:SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012

ตัวอย่าง

ลองดูและสำรวจตัวอย่างฟังก์ชัน TRY_CAST ใน SQL Server

 SELECT TRY_CAST(14.85 AS int); 
Result: 14
(kết quả là một giá trị int bị cắt phần thập phân)

SELECT TRY_CAST(14.85 AS float);
Result: 14.85
(kết quả được trả về dưới dạng giá trị float và không bị cắt ngắn)

SELECT TRY_CAST('14 Main St.' AS float);
Result: NULL
(kết quả là NULL vì không thể chuyển đổi giá trị chuỗi này thành float)

SELECT TRY_CAST(15.6 AS varchar);
Result: '15.6'
(kết quả được trả về dưới dạng varchar)

SELECT TRY_CAST(15.6 AS varchar(2));
Result: NULL
(kết quả là NULL vì chuyển đổi không thành công do giá trị không phù hợp với
varchar độ dài 2 ký tự)


SELECT TRY_CAST('2018-09-13' AS datetime);
Result: '2018-09-13 00:00:00.000'
(kết quả được trả về dưới dạng datetime)