Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Конвертирование "23.04.2008 00:00:00" в "23.04.2008" / 7 сообщений из 7, страница 1 из 1
02.07.2009, 17:24
    #36070626
GuestGuestSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование "23.04.2008 00:00:00" в "23.04.2008"
Народ привет. Сразу скажу, что сделать я это хочу в Reporting Services
Нужно стринг "23.04.2008 00:00:00" переконвертить в стринг "23.04.2008"
Хотел сначало переконверить в дату, а потом сделать использовать Format с ("dd.MM.yyyy"), но на этапе CDate("23.04.2008 00:00:00") - уже выдается ошибка, так как на первом месте должен быть месяц, потом день, потом год. Если ли какой нибудь доп параметр для конвертации, типа в ToString("d"). В функциях Бейсика не силен, но впринипе можно гуглить и гуглить).
За ранее спасибо за помощь.
...
Рейтинг: 0 / 0
02.07.2009, 17:35
    #36070655
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование "23.04.2008 00:00:00" в "23.04.2008"
> Автор: GuestGuestSQL
> Народ привет. Сразу скажу, что сделать я это хочу в Reporting Services
> Нужно стринг "23.04.2008 00:00:00" переконвертить в стринг "23.04.2008"

А просто сделать Left("23.04.2008 00:00:00", 10) нельзя? или могут быть данные и без строки с датой?
Можно запросом сделать
Код: plaintext
select cast(coalesce(имя поля или функции, '01.01.2008') as varchar( 10 )) from some_table
Как-то так :)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
02.07.2009, 17:46
    #36070688
GuestGuestSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование "23.04.2008 00:00:00" в "23.04.2008"
>А просто сделать Left("23.04.2008 00:00:00", 10) нельзя? или могут быть данные и без строки с датой?
Угу.

В ReportServices, когда ты уже получил данное, используются только операторы Бейсика.
Можно ли это сделать средставами некторых операторов, которые в ReportServices предосталены.
Если нет, то будем думать чтобы на вход уже приходили обрезанные параменты.
Но хотелось бы именно средставми ReportServices.

Thanks.
...
Рейтинг: 0 / 0
02.07.2009, 17:51
    #36070701
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование "23.04.2008 00:00:00" в "23.04.2008"
Код: plaintext
Debug.print Trim(Replace("23.04.2008 00:00:00","00:00:00"))
...
Рейтинг: 0 / 0
02.07.2009, 17:51
    #36070702
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование "23.04.2008 00:00:00" в "23.04.2008"
> Автор: GuestGuestSQL
> >А просто сделать Left("23.04.2008 00:00:00", 10) нельзя? или могут быть данные и без строки с датой?
> Угу.
>
> В ReportServices, когда ты уже получил данное, используются только операторы Бейсика.
> Можно ли это сделать средставами некторых операторов, которые в ReportServices предосталены.

Я не знаю какие операторы бейсика представленны в репортсервисе, но если там идет обработка построчно, т.е. в цикле, то
сначала проверять что строка длиннее 10 символов и в ключевых местах стоят точки и если да, тогда делать Left..., если
нет тогда просто присваивать какое-то значение которое показывает отсутствие даты.
А если там идет обработка множеств, как в sql, тогда запрос, который я написал


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
02.07.2009, 18:06
    #36070742
GuestGuestSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование "23.04.2008 00:00:00" в "23.04.2008"
Игорь Горбонос
Спасибо. Там ближе первый вариант.
Только циклов вроде бы там нет)
Left - конечно даст правильный результат.
Но так как там нельзя пробежаться по строке, то мы не знаем, в тех ли местах точки стоят.

Еще мне кажется что использование Left как то опасно. Логичней привести к нужному формату используя функции аля Format. Правда для этого тип 1ым аргументом функции Format должен быть ДейтТайм.

Если не найду ничего другого, буду использовать Left

Еще раз спасибо.
...
Рейтинг: 0 / 0
02.07.2009, 18:16
    #36070758
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертирование "23.04.2008 00:00:00" в "23.04.2008"
> Автор: GuestGuestSQL
> Игорь Горбонос
> Спасибо. Там ближе первый вариант.
> Только циклов вроде бы там нет)
> Left - конечно даст правильный результат.
> Но так как там нельзя пробежаться по строке, то мы не знаем, в тех ли местах точки стоят.

тогда можно воспользоватся предложенным Konst_One , его вариант, даже лучше, если там ничего не будет, то ничего
и не сделается
>
> Еще мне кажется что использование Left как то опасно. Логичней привести к нужному формату используя функции аля
> Format. Правда для этого тип 1ым аргументом функции Format должен быть ДейтТайм.

Тогда прямая дорога на предыдущий рубеж, где данные попадают в репортсервис и там приводить к нужному знаменателю :)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Конвертирование "23.04.2008 00:00:00" в "23.04.2008" / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]