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

Откуда: Ukraine, Brovary
Сообщений: 44
рискую показаться неоригинальным, но:
из ASP делаю запрос, который выбирает из таблицы несколько дат. Надо чтобы их отображение было в формате "дд.мм.гггг чч:мм:сс", т.е. русский формат. Уже установил русским все что только можно: региональные установки в контрол панели, установки юзера в mssql, которым коннектюсь к БД, дефолтные установки mssql - все русское. Результат: enterprise manager выводит дату в нужном формате, query analyzer в формате "2002-07-19 00:00:00.000", ASP - "Tue Dec 3 00:00:00 UTC+0200 2002". Извечный вопрос: кто прав, кто виноват?
17 мар 03, 19:14    [149458]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
установки юзера в mssql,
Установки какого юзера ? Надеюсь того, под каким выполняется ASP ?


Можно и принудительно конвертировать тип datetime в char
select convert(char(10), getdate(), 104) +' '+ convert(char(10), getdate(), 114)
17 мар 03, 19:34    [149475]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
JeweL
Member

Откуда: Ukraine, Brovary
Сообщений: 44
Glory, именно того самого юзера.
конвертирование в строку не подходит, т.к. запрос выглядит примерно так:
select date1 as date from table
union all
select date2 as date from table
union all
select date3 as date from table
order by date
сортировать надо по дате, а не по строке
17 мар 03, 19:39    [149479]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
Andrew
Member

Откуда: Ukraine
Сообщений: 320
региональные установки в контрол панели
Set default... нажали?
17 мар 03, 19:42    [149481]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
А что мешет сортитовать по дате ?


А это "Результат: enterprise manager выводит дату в нужном формате," вы тоже делате под этим же рользователем ? И как у вас вообще происходит авторизация ?
17 мар 03, 19:43    [149482]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
JeweL
Member

Откуда: Ukraine, Brovary
Сообщений: 44
2Glory: в таком виде сортировать по дате можно, но формат вывода ее на экран оставляет желать лучшего.
К бд в ME и в ASP коннекчусь одним и тем же юзером, который прописан в пермишенсах бд. У юзера установлен language=russian.

Вообще обойдусь наверно следующим образом:
select convert(varchar, date, 104)+' '+convert(varchar, date, 108) date from
(select date1 date from table
union all
select date2 date from table
union all
select date3 date from table
order by date) t
18 мар 03, 13:07    [150107]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
Переспрошу все-таки еще раз
Для ASP, насколько я знаю, многое зависит от установок IIS и собственно строки коннекта. Уверены ли вы что соединение происходит под тем пользователем, для которого language=russian ?


Тогда уж так
select convert(varchar, date, 104)+' '+convert(varchar, date, 108) date from
(select date1 date from table
union all
select date2 date from table
union all
select date3 date from table
) t
order by t.date
18 мар 03, 13:14    [150117]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
JeweL
Member

Откуда: Ukraine, Brovary
Сообщений: 44
спасибо, Glory, за правку, в моей версии была ошибка, но после исправления (как вы показали) все-равно сортировка по ДАТЕ не идет, а идет видимо по результирующей текстовой строке
18 мар 03, 14:27    [150233]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вы используете именно такой синтаксис - order by t.date ?
18 мар 03, 14:28    [150235]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
anonymous
Guest
Может это и не поможет...
Я тоже как то маялся с этим, правда при использовании
компонента ADOQuery в С++Builder..
И вот что заметил...
Когда ADOQuery выполняет запрос:
select a,cast(b as datetime), c from Table
то он отображет дату в нормальном виде: дд.мм.гг (тип поля date)
а вот QueryAnalyzer возвращал: гг.дд.мм
Вот... Посмотри может твои ASP компененты работаю как надо...
18 мар 03, 14:36    [150248]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
JeweL
Member

Откуда: Ukraine, Brovary
Сообщений: 44
2Glory: да, запрос сейчас такой:
SELECT gr, author, convert(varchar, date, 108)+' '+.........date, ............. from
(select ......, date1 date,....
unoin all select ......, date2 date,....
unoin all select ......, date3 date,.... )t
ORDER BY t.gr, t.author, t.date desc

2anonymous: cast(date as datetime) не помогает
18 мар 03, 15:08    [150297]     Ответить | Цитировать Сообщить модератору
 Re: формат вывода даты  [new]
JeweL
Member

Откуда: Ukraine, Brovary
Сообщений: 44
в результате долгих мучений и переделок получился небольшой монстрик с "case when"'ами:
SELECT
case
when условие1 then '1 Закрытые запросы (указана дата закрытия):'
when условие2 then '2 Выполненные (незакрытые) запросы (указана дата выполнения):'
when условие3 then '3 Невыполненные запросы (указана плановая дата выполнения):'
end gr,
bla...bla...bla...bla...bla...bla,
case
when условие1 then CONVERT(varchar, date_close, 104)+' '+CONVERT(varchar, date_close, 108)
when условие2 then CONVERT(varchar, date_actual, 104)+' '+CONVERT(varchar, date_actual, 108)
when условие3 then CONVERT(varchar, date_plan, 104)+' '+CONVERT(varchar, date_plan, 108)
end date
FROM view_request vr WHERE bla...bla...bla...bla and (условие1 or условие2 or условие3 )
ORDER BY bla...bla...bla...bla,
case
when условие1 then date_close
when условие2 then date_actual
when условие3 then date_plan
end desc
18 мар 03, 17:53    [150552]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить