Я пытаюсь вставить дату в столбец datetime после форматирования getdate () tovarchar (8) с помощью функции convert. Я вижу, что это работает по большей части, но между прочим, когда date является високосной датой (29 февраля), происходит сбой с преобразованием varchar в datetime error.
Я изменил varchar (8) на varchar (9), что в итоге решило проблему , Любая идея, если 29 февраля хранится по-другому на SQL сервере?
CREATE TABLE [dbo].[temp_insert]
(
[TimeStamp] [datetime] NULL,
) ON [PRIMARY]
GO
insert into temp_insert values(convert(varchar(8),(getdate()+1),113))--*inserts 1st march 2020*
GO
insert into temp_insert values(convert(varchar(8),(getdate()),113))--*fails with conversion error*
GO
insert into temp_insert values(convert(varchar(9),(getdate()),113))--*giving 9 bytes in varchar, inserts 29th Feb without issues.*
GO
select * from temp_insert--*shows 2 rows including 29th feb leap day*
GO