Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
вот такой код:

set dateformat dmy

declare @iDoc INT
declare @AppXML xml
set @AppXML=convert(xml,N'<root><Application><ApplicationNumber>test</ApplicationNumber><DateApplied>29/03/2013</DateApplied></Application></root>')


 --parse the XML  
 EXEC sp_xml_preparedocument @iDoc OUTPUT, @AppXML; 

SELECT 
   [ApplicationNumber],  
   [DateApplied]   
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] datetime './DateApplied/text()'
  );  



выдает ошибку Conversion failed when converting date and/or time from character string.

Дата 29/03/2013 не распознается, почему? Ведь set dateformat dmy установлен. Как нужно установить формат типа даты что-бы смогла распознавать такую дату?
29 май 13, 16:44    [14365787]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
stenford,

'20130329'

а set dateformat dmy можно выкинуть
29 май 13, 16:45    [14365804]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
iap
stenford,

'20130329'

а set dateformat dmy можно выкинуть

понятно, что если я изменю дату в хмл'е то заработает, вопрос про то, как сделать что-бы распарсилась именно такая дата, например нет возможности влиять ни приходящий XML
29 май 13, 16:49    [14365827]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Glory
Member

Откуда:
Сообщений: 104751
stenford
Дата 29/03/2013 не распознается, почему?

Потому что в xml формат для даты другой
29 май 13, 16:49    [14365828]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Glory
stenford
Дата 29/03/2013 не распознается, почему?

Потому что в xml формат для даты другой

и как его поменять?
29 май 13, 16:49    [14365833]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
stenford
как сделать что-бы распарсилась именно такая дата, например
SELECT 
   [ApplicationNumber],  
   convert(date, [DateApplied], 103)
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] varchar(10) './DateApplied/text()'
  );  
?
29 май 13, 16:50    [14365837]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Glory
Member

Откуда:
Сообщений: 104751
stenford
и как его поменять?

Написать в World Wide Web Consortium что так мол и так чего это у вас такие стандарты некачественные.
Надо чтобы произвольный набор символов в xml как то распознавался как дата
29 май 13, 16:52    [14365850]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Паганель
stenford
как сделать что-бы распарсилась именно такая дата, например
SELECT 
   [ApplicationNumber],  
   convert(date, [DateApplied], 103)
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] varchar(10) './DateApplied/text()'
  );  
?


не работает, такая-же ошибка
29 май 13, 16:52    [14365852]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Glory
stenford
и как его поменять?

Написать в World Wide Web Consortium что так мол и так чего это у вас такие стандарты некачественные.
Надо чтобы произвольный набор символов в xml как то распознавался как дата

т.е. только кроме как изменить сам ХМЛ - вариантов нет?
29 май 13, 16:53    [14365861]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
stenford
Паганель
пропущено...
SELECT 
   [ApplicationNumber],  
   convert(date, [DateApplied], 103)
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] varchar(10) './DateApplied/text()'
  );  
?


не работает, такая-же ошибка
1) у меня работает
2) в какой строке ошибка?
29 май 13, 16:54    [14365866]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Glory
Member

Откуда:
Сообщений: 104751
stenford
т.е. только кроме как изменить сам ХМЛ - вариантов нет?

Если вам нужна _автоматическая_ конвертация, то да, только так.
Но вы можете извлечеть набор символов и написать свой конвертатор, с блекджеком и тд
29 май 13, 16:55    [14365876]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Паганель
stenford
пропущено...


не работает, такая-же ошибка
1) у меня работает
2) в какой строке ошибка?


К сообщению приложен файл. Размер - 45Kb
29 май 13, 16:57    [14365885]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Паганель
stenford
пропущено...


не работает, такая-же ошибка
1) у меня работает
2) в какой строке ошибка?
А так? :))
declare @iDoc INT
declare @AppXML xml
set @AppXML=convert(xml,N'<root><Application><ApplicationNumber>test</ApplicationNumber><DateApplied>03/29/2013</DateApplied></Application></root>')


 --parse the XML  
 EXEC sp_xml_preparedocument @iDoc OUTPUT, @AppXML; 

SELECT 
   [ApplicationNumber],  
   convert(date, [DateApplied], 103)
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] varchar(10) './DateApplied/text()'
  );  
29 май 13, 16:58    [14365890]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Glory
stenford
т.е. только кроме как изменить сам ХМЛ - вариантов нет?

Если вам нужна _автоматическая_ конвертация, то да, только так.
Но вы можете извлечеть набор символов и написать свой конвертатор, с блекджеком и тд

а каким образом тогда у Паганеля заработало?
29 май 13, 16:58    [14365892]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
iap
Паганель
пропущено...
1) у меня работает
2) в какой строке ошибка?
А так? :))
declare @iDoc INT
declare @AppXML xml
set @AppXML=convert(xml,N'<root><Application><ApplicationNumber>test</ApplicationNumber><DateApplied>03/29/2013</DateApplied></Application></root>')


 --parse the XML  
 EXEC sp_xml_preparedocument @iDoc OUTPUT, @AppXML; 

SELECT 
   [ApplicationNumber],  
   convert(date, [DateApplied], 103)
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] varchar(10) './DateApplied/text()'
  );  

нет, по-прежнему ошибка
29 май 13, 16:59    [14365900]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
не вижу всей строки на скриншоте
29 май 13, 16:59    [14365904]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
iap
Паганель
пропущено...
1) у меня работает
2) в какой строке ошибка?
А так? :))
declare @iDoc INT
declare @AppXML xml
set @AppXML=convert(xml,N'<root><Application><ApplicationNumber>test</ApplicationNumber><DateApplied>03/29/2013</DateApplied></Application></root>')


 --parse the XML 
 EXEC sp_xml_preparedocument @iDoc OUTPUT, @AppXML; 

SELECT 
   [ApplicationNumber],  
   convert(date, [DateApplied], 103)
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] varchar(10) './DateApplied/text()'
  );  
Хотя, 103-й стиль... Прошу прощения.
29 май 13, 17:00    [14365908]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Glory
Member

Откуда:
Сообщений: 104751
stenford
а каким образом тогда у Паганеля заработало?

А у Паганеля как раз собственная конвертация строки в дату, а не автоматическая.
29 май 13, 17:00    [14365910]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Паганель
не вижу всей строки на скриншоте

11-ая - это convert(date, [DateApplied], 103)
29 май 13, 17:01    [14365913]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
iap
А так? :))
stenford
сделать что-бы распарсилась именно такая дата
29 май 13, 17:01    [14365915]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Glory
Member

Откуда:
Сообщений: 104751
stenford
нет, по-прежнему ошибка

Начните с простого

SELECT 
   [ApplicationNumber],  
   [DateApplied]
 FROM OPENXML(@iDoc,'/root/Application', 2)  
 WITH([ApplicationNumber] nvarchar(30) './ApplicationNumber/text()',  
  [DateApplied] varchar(10) './DateApplied/text()'
  );  
29 май 13, 17:01    [14365919]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
stenford
Glory
пропущено...

Если вам нужна _автоматическая_ конвертация, то да, только так.
Но вы можете извлечеть набор символов и написать свой конвертатор, с блекджеком и тд

а каким образом тогда у Паганеля заработало?
Огорчу Вас - и у меня работает
29 май 13, 17:01    [14365922]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
stenford
Member

Откуда: урал
Сообщений: 2850
Glory
stenford
а каким образом тогда у Паганеля заработало?

А у Паганеля как раз собственная конвертация строки в дату, а не автоматическая.

не понял, где она у него?
29 май 13, 17:01    [14365923]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
stenford
Glory
пропущено...

А у Паганеля как раз собственная конвертация строки в дату, а не автоматическая.

не понял, где она у него?
CONVERT из строки в дату в SELECTе
29 май 13, 17:02    [14365934]     Ответить | Цитировать Сообщить модератору
 Re: Не правильно парсится дата  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
stenford
Glory
пропущено...

А у Паганеля как раз собственная конвертация строки в дату, а не автоматическая.

не понял, где она у него?
слово convert как бы намекает :)
29 май 13, 17:03    [14365935]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить