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

Вниз

Проверка корректности даты в TSQL   Найти похожие ветки 

 
DelphiN!   (2009-11-16 12:49) [0]

Доброго времени суток!
Необходимо проверить корректность даты в запросе, например :


select * from table where (field1 = "TEXT")and(IsCorrectDate("31.11.2009"))


Данный запрос не должен выводить ничего, так как даты 31.11.2009 не существует, однако к сожалению функции IsCorrectDate не существует, какая функция используется для этих целей?


 
Sergey13 ©   (2009-11-16 12:52) [1]

> [0] DelphiN!   (16.11.09 12:49)

Передавай через параметр дату, а не строку. Заодно и убедишься.


 
DelphiN!   (2009-11-16 12:53) [2]


> Sergey13 ©   (16.11.09 12:52) [1]


мне нужно именно строку ...


 
Сергей М. ©   (2009-11-16 12:54) [3]

CAST()


 
Сергей М. ©   (2009-11-16 13:01) [4]

Вообще говоря, выносить подобного рода проверки на сторону сервера довольно глупо.

Строка с 31-м ноября же не с луны же к тебе свалилась ?
Что же мешает проверить ее корректность прямо на клиенте, дабы не передавать на сервер заведомую ахинею и не грузить его по таким пустякам ?


 
DelphiN!   (2009-11-16 13:10) [5]


> Сергей М. ©   (16.11.09 12:54) [3]
> CAST()
>
>


(cast("31.11.2009" as date)="31.11.2009")
??
Так выдает ошибку
Overflow occurred during data type conversion. Conversion error from string "31.11.2009"


 
DelphiN!   (2009-11-16 13:13) [6]


> Сергей М. ©   (16.11.09 12:54) [3]


Просто есть задача написать SQL запрос в котором будет 31 стоблец (дни месяца) которые заполнены соответствующими значениями, при этом если в месяце меньше 31го дня, заполнять столбец(28-31) не нужно. Использовать процедуры нельзя ...


 
Сергей М. ©   (2009-11-16 13:14) [7]


> DelphiN!   (16.11.09 13:10) [5]


> Так выдает ошибку


Ну и что ?
Задача-то выполнена - запрос "не вывел ничего".
А если не нравится исключение, то заткнуть его проще простого - перехватить и обработать исключение в блоке try..except


 
Сергей М. ©   (2009-11-16 13:21) [8]


> есть задача написать SQL запрос в котором будет 31 стоблец


Запрашивай ВСЕ данные за месяц, и уже на стороне клиента получив эти данные изображай их в 31 столбец.
Для этого вообще-то и компоненты есть подходящие.


 
Sergey13 ©   (2009-11-16 13:39) [9]

> [6] DelphiN!   (16.11.09 13:13)
> Просто есть задача написать SQL запрос в котором будет 31
> стоблец (дни месяца) которые заполнены соответствующими
> значениями

И как это соотносится с

> [0] DelphiN!   (16.11.09 12:49)
> select * from table where (field1 = "TEXT")and(IsCorrectDate("31.11.2009"))

?


 
Виталий Панасенко   (2009-11-16 13:56) [10]

вообще-то дату нужно передавать в формате ГГГГ-ММ-ДД и пох... все настройки на Региональные стандарты. это если параметры не канают по каким-то причинам


 
Виталий Панасенко   (2009-11-16 13:57) [11]


> DelphiN!   (16.11.09 13:13) [6]
>
>
> > Сергей М. ©   (16.11.09 12:54) [3]
>
>
> Просто есть задача написать SQL запрос в котором будет 31
> стоблец (дни месяца) которые заполнены соответствующими
> значениями, при этом если в месяце меньше 31го дня, заполнять
> столбец(28-31) не нужно. Использовать процедуры нельзя .
> ..

используй Execute block...


 
Виталий Панасенко   (2009-11-16 13:58) [12]

в нем сможешь сделать CAST и в случае ошибки исправить ситуацию...



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

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

Наверх




Память: 0.49 MB
Время: 0.007 c
15-1295641340
Интересующийся
2011-01-21 23:22
2011.05.08
Жаль что у вас нет раздела для сишников


15-1294777603
Verter_Alice
2011-01-11 23:26
2011.05.08
Метод слежки с помощью куков


2-1296650084
Гражданин
2011-02-02 15:34
2011.05.08
Экран


15-1296111273
Jeer
2011-01-27 09:54
2011.05.08
Проблема парсинга TSQLQuery (dbExpress)..


2-1296743902
Женя
2011-02-03 17:38
2011.05.08
Таймер