Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 time в XML  [new]
Lady Jane
Member

Откуда:
Сообщений: 3
DECLARE @dataxml xml = CONVERT(xml, '
<DataTable>
  <Table1>
    <TimeSpan1>PT1H1M1S</TimeSpan1>
  </Table1>
</DataTable>')

SELECT x.value('TimeSpan1[1]', 'time')
FROM @dataxml.nodes('//Table1') t(x)

Как получить time из такого формата?
16 май 12, 14:07    [12563184]     Ответить | Цитировать Сообщить модератору
 Re: time в XML  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Lady Jane,

select 'PT1H1M1S',
convert(time,replace(replace(replace(replace(replace ('PT1H1M1S','h',':'),'m',':'),'s',''),'pt',''),'at','')+
left('PT1H1M1S',1)+'m')
16 май 12, 14:37    [12563442]     Ответить | Цитировать Сообщить модератору
 Re: time в XML  [new]
Lady Jane
Member

Откуда:
Сообщений: 3
А более культурного способа нету?
В таком формате TimeSpan возвращается после сериализации в .NET. Неужели у MS SQL нет способов для его преобразования в time?
16 май 12, 15:19    [12563713]     Ответить | Цитировать Сообщить модератору
 Re: time в XML  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Lady Jane
А более культурного способа нету?
В таком формате TimeSpan возвращается после сериализации в .NET. Неужели у MS SQL нет способов для его преобразования в time?


тоесть вы считаете что скуль должен из любого бредового формата переводить в человеческий одним движением руки?
Это не есть его задача.
16 май 12, 15:22    [12563729]     Ответить | Цитировать Сообщить модератору
 Re: time в XML  [new]
Lady Jane
Member

Откуда:
Сообщений: 3
На самом деле хотелось бы. :)
Раз уж есть поддержка XML, а типов данных не так уж и много.

Спасибо за ответ!
16 май 12, 15:33    [12563792]     Ответить | Цитировать Сообщить модератору
 Re: time в XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Lady Jane
В таком формате TimeSpan возвращается после сериализации в .NET. Неужели у MS SQL нет способов для его преобразования в time?
А с каких пор TimeSpan это какойто стандартный тип данных (XML тип)?!
Когда описывается объект, то описывается и правило сериализации. Можно сразу указать Binary serialization, т.е. забить болт на нормальное представление в XML.

И какого хрена данныые выгружаются в TimeSpan? И какого хрена это сераилизуется в XML, а потом десериализуются в SQL?
Чё нельзя сразу передать как параметры или таблицу?

Любят лиди приключения на свою задницу.
17 май 12, 10:25    [12567687]     Ответить | Цитировать Сообщить модератору
 Re: time в XML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Посыпаю голову пеплом.
xs:duration есть в XML. Его нет в SQL.
Но в XML есть тип даных xs:time. Можно сериализовать DateTime с указанием kind как time, кажись и будет нормально представляться как SQL тип Time.

Вопрос накуя тут XML остаётся в силе.
17 май 12, 10:43    [12567816]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить