Главная страница
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.019 c
1-16419
Евгыш
2004-01-22 15:45
2004.02.06
Минимизация кучи


4-16809
volser
2003-11-29 13:25
2004.02.06
Потоки


1-16426
WED
2004-01-20 10:14
2004.02.06
Почему не работает следующий код...


8-16519
real_dimedrol
2003-10-03 04:25
2004.02.06
3D Sound SDK


4-16836
Sergious
2003-12-01 12:05
2004.02.06
Как перевести монитор в ждущий режим под ХР?