Định dạng chuỗi ngày giờ an toàn để sử dụng trong SQL Server là
YYYYMMDD HH:MM:SS
hoặc YYYY-MM-DDTHH:MM:SS
.
Chuyển đổi bạn có sẽ không thành công nếu ĐẶT DATEFORMAT
là dmy. ĐẶT NGÔN NGỮ
sẽ tự động đặt định dạng ngày tháng cho bạn. Tôi nghĩ cả german
và norwegian
sử dụng dmy.
Điều này sẽ không thành công:
set language norwegian
declare @F7 varchar(10) = '26/04/2011'
declare @F8 varchar(10) = '00:09:13'
DECLARE @Date VARCHAR(20)
SET @Date = RIGHT(@F7,4)+'/'+SUBSTRING(@F7,4,2)+'/'+LEFT(@F7,2)
DECLARE @time DATETIME
SET @time = CONVERT(DATETIME, @Date + ' ' + @F8)
Thay vào đó, hãy làm như vậy (sử dụng YYYY-MM-DDTHH:MM:SS) để an toàn bất kể cài đặt ngôn ngữ / định dạng ngày.
declare @F7 varchar(10) = '26/04/2011'
declare @F8 varchar(10) = '00:09:13'
DECLARE @Date VARCHAR(20)
SET @Date = RIGHT(@F7,4)+'-'+SUBSTRING(@F7,4,2)+'-'+LEFT(@F7,2)
DECLARE @time DATETIME
SET @time = CONVERT(DATETIME, @Date + 'T' + @F8)