Xử lý ngày không hợp lệ

Phân tích chuỗi thời gian trong SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Hàm chuyển đổi ngày an toàn lỗi

Hàm "không an toàn"

CAST()
CONVERT()
PARSE()

Hàm an toàn

TRY_CAST()
TRY_CONVERT()
TRY_PARSE()
Phân tích chuỗi thời gian trong SQL Server

Khi mọi thứ suôn sẻ

SELECT
    PARSE('01/08/2019' AS DATE USING 'en-us') AS January8US,
    PARSE('01/08/2019' AS DATE USING 'fr-fr') AS August1FR;
GO

Kết quả:

January8US August1FR
2019-01-08 2019-08-01
Phân tích chuỗi thời gian trong SQL Server

Khi mọi thứ trục trặc

SELECT
    PARSE('01/13/2019' AS DATE USING 'en-us') AS January13US,
    PARSE('01/13/2019' AS DATE USING 'fr-fr') AS Smarch1FR;
GO
**Msg 9819, Level 16, State 1, Line 1**

Lỗi chuyển đổi giá trị chuỗi '01/13/2019' sang kiểu dữ liệu date với văn hóa 'fr-fr'.
Phân tích chuỗi thời gian trong SQL Server

Xử lý đúng khi mọi thứ trục trặc

SELECT
    TRY_PARSE('01/13/2019' AS DATE USING 'en-us') AS January13US,
    TRY_PARSE('01/13/2019' AS DATE USING 'fr-fr') AS Smarch1FR;
GO
January13US Smarch1FR
2019-01-13 NULL
Phân tích chuỗi thời gian trong SQL Server

Chi phí của tính an toàn

Dùng phương thức an toàn không tốn kém hơn phương thức không an toàn.

Phân tích chuỗi thời gian trong SQL Server

Chi phí của tính an toàn

Hàm CAST() và CONVERT() chạy gần như cùng tốc độ.

Phân tích chuỗi thời gian trong SQL Server

Chi phí của tính an toàn

Hàm PARSE() chậm hơn nhiều so với CAST() và CONVERT().

Phân tích chuỗi thời gian trong SQL Server

Chi phí của tính an toàn

Đây là số đo theo giây, nên tăng tuyến tính.

Phân tích chuỗi thời gian trong SQL Server

Ayo berlatih!

Phân tích chuỗi thời gian trong SQL Server

Preparing Video For Download...