Проблема с датой день / месяц в обратном порядке при сохранении - PullRequest
0 голосов
/ 11 ноября 2008

У нас проблема только с производственной средой.

У нас есть веб-сайт VB6 / ASP, который позволяет редактировать данные в таблице базы данных вручную.

Это выглядит как редактируемая сетка данных.

Один из редактируемых столбцов - это дата, а когда запись сохраняется, даты / месяц меняются местами.

03/11/2008 становится 11/03/2008, если вы должны были восстановить запись, дата снова 03/11/2008.

Я проверил значение БД, и оно действительно отменяется, однако тот же самый идентичный код в тестовых системах не делает этого.

Так что я очень уверен, что я ищу изменения окружающей среды. Тестовая система имеет локальную базу данных и сайт, а в режиме реального времени у нас есть отдельный сервер веб-сайта и сервер базы данных. Где вы предлагаете мне начать искать эту проблему. Я проверил региональные настройки на серверах, и они установлены на Соединенное Королевство, и формат даты ОС правильный.

Это SQL Server 2000. Удиви меня идеями!

Спасибо:)

Ответы [ 5 ]

1 голос
/ 11 ноября 2008

Это почти наверняка связано с тем, что на вашем компьютере или на сервере БД установлен формат даты США. Дважды проверьте обе настройки системы.

В качестве альтернативы, быстрый поиск в Google вызовет несколько опций для манипулирования данными, поэтому он будет делать то, что вам нужно.

1 голос
/ 11 ноября 2008

Если вы преобразуете предоставленную пользователем строку в дату до , когда вы подаете ее в БД, то Session.LCID потока, выполняющего вашу ASP-страницу, отвечает за то, как даты интерпретируются.

Если вы передаете дату в виде строки в SQL Server и позволяете конвертации выполняться там, будет полезно взглянуть на операторы SET DATEFORMAT и SET LANGUAGE .

Итак, вот моя идея: либо прекратите использовать (поощряя своих пользователей использовать) неоднозначные форматы дат, и эта проблема исчезнет, ​​либо убедитесь, что все звенья цепочки обработки имеют четкое представление о том, какого формата ожидать.

0 голосов
/ 11 ноября 2008

Перейдите в regedit и перейдите по следующему адресу в реестре Windows:

HKEY_USERS.DEFAULT \ Панель управления \ Международная \

Убедитесь, что поле "sShortDate" является правильным.

Формат короткой даты, сохраненный в этом месте, много раз отличается от формата короткой даты, хранящегося в панели управления Windows или в региональных настройках. Краткая дата в региональных настройках предназначена для пользователя, который вошел в Windows как. Поле «sShortDate» в HKEY_USERS в формате короткой даты, используемом службами Windows.

0 голосов
/ 11 ноября 2008

следующие

выберите имя, псевдоним, дату форматирования от syslanguages где langid = (выберите значение из master..sysconfigures где комментарий = 'язык по умолчанию')

Возвращает один и тот же результат в тесте и в реальном времени

us_english английский mdy

Проблема в том, что система не может быть повторно развернута для изменения. Мне нужно определить причину и устранить ее.

0 голосов
/ 11 ноября 2008

Как на счет региональных настроек ОС?

...