У меня есть данные XML-файла, приведенные ниже.Ошибка конверсии при преобразовании даты и/или времени из символьной строки (при попытке сохранить данные XML)
'<NewDataSet>
<tblVCWS_Schedule>
<PKWSSchedule>1</PKWSSchedule>
<ScheduleTime>PT7H</ScheduleTime>
</tblVCWS_Schedule>
<tblVCWS_Schedule>
<PKWSSchedule>2</PKWSSchedule>
<ScheduleTime>PT13H30M</ScheduleTime>
</tblVCWS_Schedule>
<tblVCWS_Schedule>
<PKWSSchedule>3</PKWSSchedule>
<ScheduleTime>PT13H30M</ScheduleTime>
</tblVCWS_Schedule>
</NewDataSet>'
Поле ScheduleTime - это поле типа времени (7) в SQL.
Но когда я пытаюсь сохранить данные во временную таблицу я набираюсь
«Конверсия удалось при преобразовании даты и/или времени из символьной строки»
DECLARE @PreAdviceSubmissions varchar(max)
set @PreAdviceSubmissions=
'<NewDataSet>
<tblVCWS_Schedule>
<PKWSSchedule>1</PKWSSchedule>
<ScheduleTime>PT7H</ScheduleTime>
</tblVCWS_Schedule>
<tblVCWS_Schedule>
<PKWSSchedule>2</PKWSSchedule>
<ScheduleTime>PT13H30M</ScheduleTime>
</tblVCWS_Schedule>
<tblVCWS_Schedule>
<PKWSSchedule>3</PKWSSchedule>
<ScheduleTime>PT13H30M</ScheduleTime>
</tblVCWS_Schedule>
</NewDataSet>'
DECLARE @hDoc int
CREATE TABLE #PreAdviceSubmissions
(
PKWSSchedule bigint,
ScheduleTime Time(7)
)
EXECUTE sp_xml_preparedocument @hDoc OUTPUT, @PreAdviceSubmissions
INSERT INTO #PreAdviceSubmissions
(
PKWSSchedule,
ScheduleTime
)
SELECT
PKWSSchedule ,
CAST(ScheduleTime AS TIME(7))
FROM OPENXML(@hDoc,'/NewDataSet/tblVCWS_Schedule', 2)
WITH
(
PKWSSchedule bigint 'PKWSSchedule' ,
ScheduleTime Time(7) 'ScheduleTime'
)
EXECUTE sp_xml_removedocument @hDoc
select * from #PreAdviceSubmissions
Может кто-нибудь поможет решить Эта проблема? Обратите внимание, что я не могу изменить тип данных Time (7) на любой другой тип данных.
установить ScheduleTime как PT13H30M И его не хорошо formed.this значения не преобразуются в Time –
Как я могу конвертировать PT13H30M это время? Я получаю значение как в XML-файле? –
ТИП ВРЕМЕННЫХ ДАННЫХ НЕ ПРИНИМАЕТ STRING КАК ВРЕМЯ В СЕРВЕРЕ SQL. ВЫ ИСПОЛЬЗУЕТЕ ЗАМЕНЯТЬСЯ В КОДЕЛЕ СЕБЯ И КОНВЕРТИРУЙТЕ ВРЕМЯ. –