Hướng dẫn chung về thời điểm bạn nên sử dụng CAST
so với CONVERT
là gì? Có bất kỳ vấn đề về hiệu suất nào liên quan đến việc chọn cái nào so với cái kia không? Là một trong những gần gũi hơn với ANSI-SQL?T-SQL Cast so với Chuyển đổi
Trả lời
CONVERT
là SQL Server cụ thể, CAST
là ANSI.
CONVERT
linh hoạt hơn ở chỗ bạn có thể định dạng ngày, vv Ngoài ra, chúng khá giống nhau. Nếu bạn không quan tâm đến các tính năng mở rộng, hãy sử dụng CAST
.
EDIT:
Theo ghi nhận của @beruic và @ C-F trong các ý kiến dưới đây, có thể mất độ chính xác khi một chuyển đổi ngầm được sử dụng (có nghĩa là một trong những nơi bạn sử dụng không CAST cũng không CONVERT). Để biết thêm thông tin, hãy xem CAST and CONVERT và đặc biệt là đồ họa này: SQL Server Data Type Conversion Chart. Với thông tin bổ sung này, lời khuyên ban đầu vẫn giữ nguyên. Sử dụng CAST nếu có thể.
Chuyển đổi có thông số kiểu cho ngày chuyển đổi chuỗi.
CAST là standar SQL, nhưng CONVERT không phải là (chỉ dành cho các phương ngữ T-SQL), chúng tôi có một lợi thế nhỏ cho chuyển đổi trong trường hợp datetime
với CAST, bạn cho biết sự biểu hiện và các loại mục tiêu ; với CONVERT, có đối số thứ ba thể hiện kiểu dáng cho chuyển đổi, được hỗ trợ cho một số chuyển đổi, như giữa các ký tự giá trị ngày và giờ. Ví dụ: CONVERT (DATE, '1/2/2012', 101) chuyển đổi chuỗi ký tự chữ cái thành DATE bằng cách sử dụng kiểu 101 đại diện cho tiêu chuẩn Hoa Kỳ.
liên quan,
CAST sử dụng tiêu chuẩn ANSI. Trong trường hợp tính di động, điều này sẽ hoạt động trên các nền tảng khác. CONVERT dành riêng cho máy chủ sql. Nhưng chức năng rất mạnh. Bạn có thể chỉ định các kiểu khác nhau cho các ngày
Có điều gì đó dường như chưa được chú ý là dễ đọc. Có ...
CONVERT(SomeType,
SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
)
... có thể dễ hiểu hơn ...
CAST(SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
AS SomeType
)
- 1. Chuyển đổi TSQL sang MS-Access SQL
- 2. tĩnh cast so với dàn diễn viên năng động
- 3. Chuyển đổi CSS so với vị trí
- 4. Làm thế nào để chuyển đổi/cast dài thành String?
- 5. Chuyển đổi Git so với Checkout trong Netbeans
- 6. Tối ưu hóa mã; chuyển đổi so với nếu là
- 7. Chênh lệch chuyển đổi PHP so với JavaScript
- 8. Chuyển đổi constructor so với toán tử chuyển đổi: ưu tiên
- 9. Chuyển đổi từ một đại biểu này sang đại biểu khác. Pseudo cast
- 10. dữ liệu lỗi chuyển đổi khi sử dụng CAST trong một tuyên bố CASE
- 11. Postgresql. TẠO CAST 'nhân vật thay đổi' thành 'số nguyên'
- 12. Một cuộc gọi lớn so với nhiều cuộc gọi TSQL nhỏ hơn
- 13. Overriding (cast)
- 14. LINQ Cast <T> với System.Type
- 15. Cast ssize_t hoặc size_t
- 16. chuyển đổi: translateX so với chuyển đổi trên thuộc tính bên trái. Trong đó có hiệu suất tốt hơn? CSS
- 17. C# Cast toàn bộ mảng?
- 18. Kết nối chỉ đọc với ADO.NET, SQLite và TSQL
- 19. Ngày xử lý TSQL từ ngày giờ
- 20. Di chuyển so với CopyMemory ở Delphi
- 21. TSQL PRINT statement conversion issue
- 22. Công cụ di chuyển từ TSQL sang PL/SQL?
- 23. sửa đổi so với phiên bản
- 24. TSQL DateTime to DateKey Int
- 25. Di chuyển đường ray - change_column với loại chuyển đổi
- 26. Chuyển đổi enum để int
- 27. Ngày so với TimeStamp so với lịch?
- 28. Cast Object to Array
- 29. SVN: Trạng thái "chuyển đổi tương đối so với cha mẹ" nghĩa là gì?
- 30. .NET: chuyển đổi so với từ điển cho các phím chuỗi
Ngoài ra, tôi tin rằng có một số chuyển đổi số nơi CAST nên được sử dụng để duy trì độ chính xác, nhưng tôi đang gặp khó khăn khi tìm một đáng tin cậy nguồn thông tin này. – beruic
@beruic Bạn nói đúng, có thông tin trong MSDN: http://msdn.microsoft.com/en-us/library/ms187928.aspx CAST được yêu cầu duy trì độ chính xác khi chuyển đổi giữa các loại DECIMAL và NUMERIC. –
@ C-F Bạn thấy thông tin này ở đâu? Tôi đã theo liên kết, mở trang chung trên CAST và CONVERT và thông tin duy nhất về độ chính xác mà tôi có thể tìm thấy là về việc chuyển đổi các giá trị float sử dụng ký pháp khoa học. Tôi có thể sai trong bình luận đầu tiên của tôi? – beruic