Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Форматы дат в MS SQL Server 2000   Найти похожие ветки 

 
Nikolai_S ©   (2004-01-15 10:58) [0]

У меня такая проблема. В каком формате нужно работать с датами в MS SQL Server 2000? У себя на рабочем месте в SQL-запросах все работало вот так:
SELECT * FROM MY_TABLE WHERE MY_DATE="23/10/2003"
т.е. дата писалась в одинарных ковычках и в формате "dd/mm/yyyy".

На сервере заказчика на подобный запрос выдается ошибка.

Вероятно в настройках SQL-сервера можно задать формат даты. Как тогда его программно узнать из Дельфи? Ведь сам дельфи как-то знает формат конкретного SQL-сервера, т.к. при работе с датами через TADOTable все всегда работает корректно, хотя тоже через SQL-запросы работает с БД.


 
Academic ©   (2004-01-15 11:00) [1]

При формировании запроса лучше использовать параметры для дат.
Гарантия того что сервер правильно поймет кодировку.


 
Nikolai_S ©   (2004-01-15 11:08) [2]

Параметры не катят. Там сложный SQL-запрос, да и в параметрах можно только задать условие типа MY_DATE=..., а мне нужно еще MY_DATE>=... , Date Between (...) AND (...) и т.п.


 
Nikolay M. ©   (2004-01-15 11:27) [3]


> в параметрах можно только задать условие типа MY_DATE=...,

С чего ты это решил? Попробовать MY_DATE >= :MY_DATE религия не дает?
Что касается сабжа, что мешало в BOL поискать SET DATEFORMAT?


 
Reindeer Moss Eater ©   (2004-01-15 11:49) [4]

Если параметры недопустимы, то используй ODBC-canonical формат
yyyy-mm-dd


 
paul_k ©   (2004-01-15 11:53) [5]

WHERE MY_DATE=convert(datetime,"23/10/2003",103)
это для указанного формата даты.
подробнее смотреть BOL функцию convert


 
Stas ©   (2004-01-15 11:54) [6]

Может это подойдет ?
http://delphimaster.net/view/3-1074079583/


 
sniknik ©   (2004-01-15 12:00) [7]

ничего не надо, никаких конвертов
SELECT * FROM Orders WHERE OrderDate="19960715"
MSSQL сам справится, yyyymmdd
(это к пример-базе Northwind)

хотя почему параметры не подходят все одно не пойму.


 
SergSuper   (2004-01-15 14:12) [8]

вобще язык и настройки задаются в параметрах логина

при добавлении логина это параметр @deflanguage
sp_addlogin [ @loginame = ] "login"
[ , [ @passwd = ] "password" ]
[ , [ @defdb = ] "database" ]
[ , [ @deflanguage = ] "language" ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] "encryption_option"]

Хранятся логины в таблице master..syslogins, туда же записывается и @deflanguage(поле language). По этому language определяется формат даты - по полю dateformat таблицы master..syslanguages.
Еще можно явно задать формат командой SET DATEFORMAT, в данном случае set dateformat dmy
Читайте BOL


 
Nikolai_S ©   (2004-01-15 14:31) [9]

В принципе параметры подойдут, но прога уже написана. Все переделывать долго, а вот формат даты в константе сидит. Его можно быстро изменить, даже вписать в него функцию.


 
Arm79 ©   (2004-01-15 16:32) [10]

Смотри
> Reindeer Moss Eater © (15.01.04 11:49) [4]


и

> sniknik © (15.01.04 12:00) [7]



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
3-16035
hOMO
2004-01-12 17:46
2004.02.06
Структура номера телефона


14-16682
SergP
2004-01-17 04:00
2004.02.06
Помогите с настройками ORACLE8i


3-16139
Dmitriy Yakovenko
2004-01-15 12:44
2004.02.06
Поле типа INT64 в Delphi7


14-16658
raidan
2004-01-01 22:23
2004.02.06
Прикольно у вас тут :)


3-16128
Karlson
2004-01-15 15:37
2004.02.06
значения Null