Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как сделать по хитрому / 14 сообщений из 14, страница 1 из 1
06.09.2006, 16:03
    #33968492
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
Привет Сайбезовцам!

ASE 12.5.0.3

Как сделать по хитрому, чтобы серваке с LANG == us_english, CHARSET == cp1251
выполнялись оба оператора без ошибок
select convert(datetime,'Sep 6 2006 7:27')
select convert(datetime,'Aвг 11 2006 7:22')

???
...
Рейтинг: 0 / 0
06.09.2006, 16:11
    #33968525
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
MaktubПривет Сайбезовцам!

ASE 12.5.0.3

Как сделать по хитрому, чтобы серваке с LANG == us_english, CHARSET == cp1251
выполнялись оба оператора без ошибок
select convert(datetime,'Sep 6 2006 7:27')
select convert(datetime,'Aвг 11 2006 7:22')

???

вот так:
select convert(datetime,'20060906 7:27')
select convert(datetime,'20060811 7:22')
...
Рейтинг: 0 / 0
06.09.2006, 16:12
    #33968529
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
komrad MaktubПривет Сайбезовцам!

ASE 12.5.0.3

Как сделать по хитрому, чтобы серваке с LANG == us_english, CHARSET == cp1251
выполнялись оба оператора без ошибок
select convert(datetime,'Sep 6 2006 7:27')
select convert(datetime,'Aвг 11 2006 7:22')

???

вот так:
select convert(datetime,'20060906 7:27')
select convert(datetime,'20060811 7:22')

т.е. на клиенте дату приводить к нормальному виду YYYYMDD HH:MM:SS
...
Рейтинг: 0 / 0
06.09.2006, 17:25
    #33968867
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
а если значение 'Sep 6 2006 7:27' негерит сам Sybase.
Как быть в этом случае?
...
Рейтинг: 0 / 0
06.09.2006, 17:56
    #33969026
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
Maktubа если значение 'Sep 6 2006 7:27' негерит сам Sybase.
Как быть в этом случае?

select convert(varchar(8),getdate(),112)+' '+ convert(varchar(8),getdate(),108)
...
Рейтинг: 0 / 0
06.09.2006, 18:00
    #33969039
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
Можно конечно попробывать сделать через "задницу" - добавить язык ( sp_addlanguage ) и через set language выполнить convert. Не пробывал, так - что-то навеяло, не ругайте
...
Рейтинг: 0 / 0
07.09.2006, 09:59
    #33969856
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
komrad
select convert(varchar(8),getdate(),112)+' '+ convert(varchar(8),getdate(),108)
...
Рейтинг: 0 / 0
07.09.2006, 10:04
    #33969868
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
komrad select convert(varchar(8),getdate(),112)+' '+ convert(varchar(8),getdate(),108)

Я не точно объяснил что требуется.
Никаких пользовательских вмешательст со значением 'Sep 6 2006 7:27' не должно быть.
Значение 'Sep 6 2006 7:27' передается между системными процедурами Sybase.

И select convert(datetime,'Sep 6 2006 7:27') это пример того, что не прохоит конвертация VARCHAR value to a DATETIME field.
...
Рейтинг: 0 / 0
07.09.2006, 10:28
    #33969933
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
КомпостеровМожно конечно попробывать сделать через "задницу" - добавить язык ( sp_addlanguage ) и через set language выполнить convert. Не пробывал, так - что-то навеяло, не ругайте

Добавил язык
sp_addlanguage english, null,'January,February,March,April,May,June,July,August,September,October,November,December',
'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec','Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday',
dmy,1

и в /locales добавил папку "english"

Но все равно осталась ошибка конвертации.
...
Рейтинг: 0 / 0
07.09.2006, 10:32
    #33969953
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
КомпостеровМожно конечно попробывать сделать через "задницу" - добавить язык ( sp_addlanguage ) и через set language выполнить convert. Не пробывал, так - что-то навеяло, не ругайте

Добавил язык
sp_addlanguage english, null,'January,February,March,April,May,June,July,August,September,October,November,December',
'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec','Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday',
dmy,1

и в /locales добавил папку "english"

Но все равно осталась ошибка конвертации.
...
Рейтинг: 0 / 0
07.09.2006, 10:43
    #33969993
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
КомпостеровМожно конечно попробывать сделать через "задницу" - добавить язык ( sp_addlanguage ) и через set language выполнить convert. Не пробывал, так - что-то навеяло, не ругайте

Добавил язык
sp_addlanguage english, null,'January,February,March,April,May,June,July,August,September,October,November,December',
'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec','Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday',
dmy,1

и в /locales добавил папку "english"

Но все равно осталась ошибка конвертации.
...
Рейтинг: 0 / 0
07.09.2006, 10:48
    #33970009
Как сделать по хитрому
Посмотри
select convert(datetime,'Sep 6 2006 7:27')
select convert(datetime,'Aвг 11 2006 7:22')

Не надо добавлять еще раз English,
тебе нужен русский язык:

sp_addlanguage russian, null,'Январь,...,
'Янв,...,
'Понедельник...',
dmy,1
...
Рейтинг: 0 / 0
07.09.2006, 11:19
    #33970129
Maktub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
Компорстеров

На серваке
dmy 1 1250 us_english us_english Январь,Февраль
dmy 1 1250 russian russian Январь,Февраль


select convert(datetime,'Aвг 11 2006 7:22') - прокатывает.
То бишь рус. даты конвертятся.

А когда в сис.процедуру передается строка 'Sep 6 2006 7:27', то траблы.

По этому я и пробовал поставить english чтоб было серваку откуда интерпритировать 'Jan,Feb,Mar,Apr,May,....', Но не помогло. Мож что-то не доделал?
...
Рейтинг: 0 / 0
07.09.2006, 13:46
    #33970813
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать по хитрому
Maktub komrad select convert(varchar(8),getdate(),112)+' '+ convert(varchar(8),getdate(),108)

Я не точно объяснил что требуется.
Никаких пользовательских вмешательст со значением 'Sep 6 2006 7:27' не должно быть.
Значение 'Sep 6 2006 7:27' передается между системными процедурами Sybase.

И select convert(datetime,'Sep 6 2006 7:27') это пример того, что не прохоит конвертация VARCHAR value to a DATETIME field.

Откуда появляются русские названия месяцев?
Предлагаю раз и навсегда решить проблему представления дат - перевести межпроцедурные даты в указанный формат. Иначе так и будете разгребать баги, когда например дата придет в корейской или французской локали (насколько я понял - даты приходят с клиента) ;)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как сделать по хитрому / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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