Format string datetime yang aman untuk digunakan di SQL Server adalah
YYYYMMDD HH:MM:SS
atau YYYY-MM-DDTHH:MM:SS
.
Konversi yang Anda miliki akan gagal jika SET DATEFORMAT
adalah dmy. SETEL BAHASA
akan secara otomatis mengatur format tanggal untuk Anda. Saya pikir keduanya german
dan norwegian
gunakan dmy.
Ini akan gagal:
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)
Lakukan seperti ini sebagai gantinya (menggunakan YYYY-MM-DDTHH:MM:SS) agar aman terlepas dari pengaturan bahasa/format tanggal.
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)