Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 hex -> string (xml) -> join  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
День добрый,

Не могу решить задачку, помогите пожалуйста.

Есть 2 таблички.
1) Содержит сотрудников и время начала их работы,
2) Содержит расписание, по которому они должны работать в формате HEX.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[UsersWorkTime](
	[UserName] [nvarchar](50) NULL,
	[UserWorkStart] [datetime] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[UsersWorkTime] ([UserName], [UserWorkStart]) VALUES (N'User 1', CAST(0x00009F9400D0BD80 AS DateTime))
INSERT [dbo].[UsersWorkTime] ([UserName], [UserWorkStart]) VALUES (N'User 2', CAST(0x00009F950099CF00 AS DateTime))
INSERT [dbo].[UsersWorkTime] ([UserName], [UserWorkStart]) VALUES (N'User 3', CAST(0x00009F9600903210 AS DateTime))
/****** Object:  Table [dbo].[Schedule]    Script Date: 11/08/2011 18:25:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Schedule](
	[WorkShedule] [image] NULL,
	[RowID] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT [dbo].[Schedule] ([WorkShedule], [RowID]) VALUES (0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D2275732D6173636969223F3E3C7374616E646172645363686564756C653E3C696E636C7564654C756E636854696D65206F6E3D227472756522206D696E757465733D22363022202F3E3C636F6E7369646572486F6C6964617973206F6E3D2266616C736522202F3E3C776F726B696E67446179206973526573744461793D2266616C73652220737461727454696D653D2250543130482220656E6454696D653D22505431394822206861735374726963744C756E63683D2266616C736522202F3E3C776F726B696E67446179206973526573744461793D2266616C73652220737461727454696D653D2250543130482220656E6454696D653D22505431394822206861735374726963744C756E63683D2266616C736522202F3E3C776F726B696E67446179206973526573744461793D2266616C73652220737461727454696D653D2250543130482220656E6454696D653D22505431394822206861735374726963744C756E63683D2266616C736522202F3E3C776F726B696E67446179206973526573744461793D2266616C73652220737461727454696D653D2250543130482220656E6454696D653D22505431394822206861735374726963744C756E63683D2266616C736522202F3E3C776F726B696E67446179206973526573744461793D2266616C73652220737461727454696D653D2250543130482220656E6454696D653D22505431384822206861735374726963744C756E63683D2266616C736522202F3E3C776F726B696E67446179206973526573744461793D227472756522202F3E3C776F726B696E67446179206973526573744461793D227472756522202F3E3C707265486F6C69646179437574206F6E3D227472756522206D696E757465733D22363022202F3E3C2F7374616E646172645363686564756C653E, 1)


Собственно задача:
1) Перевести данные из таблички Schedule (колонка WorkSchedule) в текстовой формат
2) Полученная информация будет выглядеть вот так:
?<?xml version="1.0" encoding="us-ascii"?><standardSchedule>
  <includeLunchTime on="true" minutes="60" />
  <considerHolidays on="false" />
  <workingDay isRestDay="false" startTime="PT10H" endTime="PT19H" hasStrictLunch="false" />
  <workingDay isRestDay="false" startTime="PT10H" endTime="PT19H" hasStrictLunch="false" />
  <workingDay isRestDay="false" startTime="PT10H" endTime="PT19H" hasStrictLunch="false" />
  <workingDay isRestDay="false" startTime="PT10H" endTime="PT19H" hasStrictLunch="false" />
  <workingDay isRestDay="false" startTime="PT10H" endTime="PT18H" hasStrictLunch="false" />
  <workingDay isRestDay="true" />
  <workingDay isRestDay="true" />
  <preHolidayCut on="true" minutes="60" />
</standardSchedule>

3) Получить ожидаемое время прихода/ухода сотрудников из таблички UsersWorkTime.
Т.е. получаем день недели из поля UserWorkStart, делаем Join на нужный день недели в XML и показываем startTime & endTime.

Буду признателен за советы, ибо мозг уже взорвался.
Спасибо.
8 ноя 11, 18:34    [11565834]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
+ off
Как не стыдно задавать вопросы, касающиеся вычисления
Gena928
время прихода/ухода сотрудников
техническим специалистам

Как будто непонятно для чего такие отчеты потом используются
8 ноя 11, 18:37    [11565842]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Паганель,

аячо? Сказали, значит придется сделать.
8 ноя 11, 18:41    [11565855]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gena928
Буду признателен за советы, ибо мозг уже взорвался.

На каком из пунктов ? И для какой проблемы ?
8 ноя 11, 18:45    [11565867]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Gena928
Member

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

собственно с первого пункта.
Я перевел данные из HEX в XML на сайте, online. Как это SQL делает? И потом Join на XML для меня вообще ступор.
8 ноя 11, 18:49    [11565877]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gena928
собственно с первого пункта.

"Перевести данные из таблички Schedule (колонка WorkSchedule) в текстовой формат" ?
"текстовый формат" нужно самому выбрать ?
8 ноя 11, 18:50    [11565882]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Glory
"текстовый формат" нужно самому выбрать ?


Если Вам так проще, можете сразу в XML. Просто я никогда этого не далал, поэтому не представляю порядок действий.
8 ноя 11, 18:54    [11565901]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gena928
Если Вам так проще, можете сразу в XML.

Что в XML ?
Как то нужно у вас из головы прочитать, какая часть из бинарной строки 0x3C3F786D6C2076657273696F... какой части XML соответствует ?
8 ноя 11, 18:56    [11565913]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Glory
Как то нужно у вас из головы прочитать, какая часть из бинарной строки 0x3C3F786D6C2076657273696F... какой части XML соответствует ?


Я тоже этого не знаю... у меня только HEX. :-))))

И в XML дни недели не пронумерованы. 7 строк и все.
8 ноя 11, 19:04    [11565939]     Ответить | Цитировать Сообщить модератору
 Re: hex -> string (xml) -> join  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gena928
Я тоже этого не знаю... у меня только HEX. :-))))

Замечательная постановка задачи - Подберите мне алгоритм, чтобы правильно парсил строку неизвестного формата
8 ноя 11, 19:07    [11565955]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить