Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать формат даты который по умолчанию, установлен на сервере 
:(
    Опции темы
Gwire
Дата 21.2.2012, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: нет
Всего: 4



У заказчика имеется уже рабочая база. 
Он дал копию базы для примера и заказал несколько дополнительных программ.
Из backup-а развернул базу. Написал программу. Отдал заказчику. 
На его сервере не работает фильтр по дате. Начал разбираться... 
Оказывается у него формат даты MM-DD-YYYY а на моем YYYY-MM-DD.

Менять форматы не вариант, нет гарантии, что программы написанные ранее (не мной) не перестанут работать.
На моем сервере тоже не нужно. Не потому, что нельзя, просто хочется добиться работоспособности клиента с любой настройкой сервера.

Запрос отправляю вида
Код

SELECT * FROM [dbo].[table] WHERE [date] > '2012-01-20';
И в результате запрос не возвращает данные или матерится:
"The conversion of a varchar data type to a datetime data type resulted in an out-of-range value."

Со стороны клиента эта проблему решается просто. Но нужно получить порядок следования аргументов даты.
Подскажите, пожалуйста, каким запросом можно получить формат даты установленный на сервере.

P.S. Если кому интересно, программа написана под Delphi7. Компонент TADODataSet.
Искал в похожих темах ответа не видел. =(

Это сообщение отредактировал(а) Gwire - 21.2.2012, 17:29
PM MAIL   Вверх
Zloxa
Дата 21.2.2012, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(Gwire @  21.2.2012,  17:28 Найти цитируемый пост)
Не потому, что нельзя, просто хочется добиться работоспособности клиента с любой настройкой сервера.

Не используйте литералов в запросах, используйте связанные переменные.

Региональные же настройки вообще, обычно - не столько настройки сервера, сколько  настройки клиента. И если могут быть прописаны на стороне сервера по умолчанию, то могут быть изменены на стороне клиента.
Как изменить параметры сессии - легко гуглится.. От туда же линк на статью как вообще работать с датами.

Цитата

То, как будет воспринято значение, зависит от сочетания формата строкового литерала, типа данных и следующих настроек времени выполнения: SET DATEFORMAT, SET LANGUAGE и параметр default language.



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.