-
Доброго времени суток!
Необходимо проверить корректность даты в запросе, например :
select * from table where (field1 = 'TEXT')and(IsCorrectDate('31.11.2009'))
Данный запрос не должен выводить ничего, так как даты 31.11.2009 не существует, однако к сожалению функции IsCorrectDate не существует, какая функция используется для этих целей?
-
> [0] DelphiN! (16.11.09 12:49)
Передавай через параметр дату, а не строку. Заодно и убедишься.
-
> Sergey13 © (16.11.09 12:52) [1]
мне нужно именно строку ...
-
CAST()
-
Вообще говоря, выносить подобного рода проверки на сторону сервера довольно глупо.
Строка с 31-м ноября же не с луны же к тебе свалилась ?
Что же мешает проверить ее корректность прямо на клиенте, дабы не передавать на сервер заведомую ахинею и не грузить его по таким пустякам ?
-
> Сергей М. © (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"
-
> Сергей М. © (16.11.09 12:54) [3]
Просто есть задача написать SQL запрос в котором будет 31 стоблец (дни месяца) которые заполнены соответствующими значениями, при этом если в месяце меньше 31го дня, заполнять столбец(28-31) не нужно. Использовать процедуры нельзя ...
-
> DelphiN! (16.11.09 13:10) [5]
> Так выдает ошибку
Ну и что ?
Задача-то выполнена - запрос "не вывел ничего".
А если не нравится исключение, то заткнуть его проще простого - перехватить и обработать исключение в блоке try..except
-
> есть задача написать SQL запрос в котором будет 31 стоблец
Запрашивай ВСЕ данные за месяц, и уже на стороне клиента получив эти данные изображай их в 31 столбец.
Для этого вообще-то и компоненты есть подходящие.
-
> [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'))
?
-
вообще-то дату нужно передавать в формате ГГГГ-ММ-ДД и пох... все настройки на Региональные стандарты. это если параметры не канают по каким-то причинам
-
> DelphiN! (16.11.09 13:13) [6]
>
>
> > Сергей М. © (16.11.09 12:54) [3]
>
>
> Просто есть задача написать SQL запрос в котором будет 31
> стоблец (дни месяца) которые заполнены соответствующими
> значениями, при этом если в месяце меньше 31го дня, заполнять
> столбец(28-31) не нужно. Использовать процедуры нельзя .
> ..
используй Execute block...
-
в нем сможешь сделать CAST и в случае ошибки исправить ситуацию...