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

Откуда:
Сообщений: 188
Коллеги, уперся в проблему, не хватает знаний, чтобы разобраться, может, кто сталкивался...

Есть вьюха в базе на SQL Server и есть сводная таблица в Excel, которая подключена к этой вьюхе. Во вьюхе есть поле "месяц", которое на данный момент выглядит так:
CAST(DATENAME(m, Учет.упч_Дата) AS VARCHAR(3)) + ' ' + CAST(DATENAME(yy, Учет.упч_Дата) AS VARCHAR(8)) AS Месяц
То есть нужно сделать так, чтобы это поле "месяц" было представлено в формате, скажем, "октябрь 2011" или "окт 2011", не принципиально, будет ли видно название месяца полностью или же нет.

Проблема в следующем. Как преобразовать дату так, чтобы сохранялся указанный формат представления даты и при этом корректно работала сортировка? В частности при таком преобразовании, сортировка по месяцам осуществляется по алфавиту, а не по реальному порядку следования месяцев.

Может, у кого то уже есть опыт решения подобной задачи?
21 окт 11, 14:58    [11479331]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
foosh, можно в эксель передавать просто дату, а форматировать то, как она выглядит, уже при помощи свойств ячеек
21 окт 11, 15:03    [11479396]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
то есть даже не можно, а нужно. форматирование вывода - задача клиентской части
21 окт 11, 15:04    [11479411]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
foosh
Member

Откуда:
Сообщений: 188
Shakill
foosh, можно в эксель передавать просто дату, а форматировать то, как она выглядит, уже при помощи свойств ячеек

Этот вариант не совсем подходит. Excel формирует в ячейке свой список для возможной фильтрации значений. И этот список в таком случае выглядит примерно так:
01.08.2011
01.09.2011
01.10.2011 и т.д., что не вполне наглядно.

А нужно, чтобы было:

Авг 2011
Сен 2011
Окт 2011...
21 окт 11, 15:08    [11479446]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
foosh
Member

Откуда:
Сообщений: 188
То есть в теории оно, конечно, нужно делать так - передать клиенту полную дату и на клиенте ее преобразовывать. Но на практике так не получается. Во всяком случае, я не смог этого сделать...
21 окт 11, 15:11    [11479479]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
foosh
Shakill
foosh, можно в эксель передавать просто дату, а форматировать то, как она выглядит, уже при помощи свойств ячеек

Этот вариант не совсем подходит. Excel формирует в ячейке свой список для возможной фильтрации значений. И этот список в таком случае выглядит примерно так:
01.08.2011
01.09.2011
01.10.2011 и т.д., что не вполне наглядно.

А нужно, чтобы было:

Авг 2011
Сен 2011
Окт 2011...

если вы говорите про автофильтр, то это неправда
значения в списке будут выглядеть в соответствии с форматом ячеек
21 окт 11, 15:14    [11479519]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
foosh
То есть в теории оно, конечно, нужно делать так - передать клиенту полную дату и на клиенте ее преобразовывать. Но на практике так не получается. Во всяком случае, я не смог этого сделать...

если совсем всё плохо делайте два столбца. один невидимый с датой для сортировки, второй для вывода в нужном формате - вычисляемый на основе первого. но в любом случае на клиентской стороне
но это вам в другой форум, тут оффтопик
21 окт 11, 15:16    [11479546]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
foosh
Member

Откуда:
Сообщений: 188
Shakill
если совсем всё плохо делайте два столбца. один невидимый с датой для сортировки, второй для вывода в нужном формате - вычисляемый на основе первого. но в любом случае на клиентской стороне
но это вам в другой форум, тут оффтопик

Вот я и думаю, можно ли эту проблему решить на стороне SQL Server или же все-таки нужно терзать сам Excel...
21 окт 11, 15:21    [11479589]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
Glory
Member

Откуда:
Сообщений: 104751
foosh
То есть в теории оно, конечно, нужно делать так - передать клиенту полную дату и на клиенте ее преобразовывать. Но на практике так не получается.

Вы не можете задать соответствующий формат ячейки ?
Может потому, что тип ячейки получается вовсе не Date ?
21 окт 11, 15:24    [11479626]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
foosh, 11479411
21 окт 11, 15:25    [11479635]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
foosh
Member

Откуда:
Сообщений: 188
Glory
Вы не можете задать соответствующий формат ячейки ?
Может потому, что тип ячейки получается вовсе не Date ?


Проблема не в этом. Когда я передаю ячейкам значение типа datetime, то сама ячейка форматируется без проблем, как нужно. Проблема не в значениях ячеек, а в значениях фильтра для этих ячеек. Фильтр не воспринимает форматирование, а отображает значения так, как они были переданы с сервера. То есть, вместо списка месяцев, в фильтре выводится примерно такое:

22.10.2011 12:14
23.10.2011 10:11

Я попробовал поискать в Excel, можно ли как-то повлиять на представление данных в фильтре, но не нашел, как это сделать. Сейчас вот пробовал с другой стороны зайти - изменив представление данных на сервере, но пока прихожу к выводу, что такой вариант тоже имеет свои изъяны.
21 окт 11, 16:05    [11480068]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
foosh
Member

Откуда:
Сообщений: 188
P.S. На всякий случай - MS Excel 2010
21 окт 11, 16:06    [11480089]     Ответить | Цитировать Сообщить модератору
 Re: И снова о преобразовании дат... :)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
foosh
P.S. На всякий случай - MS Excel 2010

ну так спросите в форуме по экселю, как сделать чтобы фильтр учитывал форматирование ячеек
в 2003 это по умолчанию так
21 окт 11, 16:10    [11480119]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить