Trong SQL Server, kiểu dữ liệu DATETIME được lưu trữ dưới dạng 2 số nguyên 4 byte để không có định dạng cụ thể như thế này.
Nếu bạn muốn trả lại ngày ở một định dạng cụ thể, bạn cần CHUYỂN ĐỔI nó thành VARCHAR với số nhận dạng định dạng thích hợp được chỉ định.
Nếu bạn có ngày giờ trong VARCHAR và muốn lưu trữ thời gian đó trong trường DATETIME trong SQL Server, thì bạn nên đảm bảo rằng bạn chuyển giá trị đó sang SQL ở định dạng sẽ luôn được diễn giải một cách an toàn. ví dụ. Định dạng dd / mm / YYYY không an toàn vì tùy thuộc vào cài đặt, nó có thể được coi là mm / dd / yyyy khi chuyển sang. Các định dạng an toàn là:
yyyyMMdd
yyyy-MM-ddThh:mi:ss.mmm
ví dụ.
INSERT MyTable (DateField) VALUES ('01/10/2010') -- dd/MM/yyyy not safe
INSERT MyTable (DateField) VALUES ('20101001') -- yyyyMMdd safe
Cập nhật:
Khi bạn CHỌN một trường DATETIME (GETDATE (), trường, biến ....), những gì bạn thấy trong SSMS là một giá trị được định dạng vì đây là giá trị hữu ích cho bạn, thay vì hiển thị đó là biểu diễn 8byte nội bộ thực tế .