Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2011.05.08;
Скачать: [xml.tar.bz2];

Вниз

Проверка корректности даты в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1295853671
usrg
2011-01-24 10:21
2011.05.08
Вопрос о приобретении EhLib


2-1296561862
pest
2011-02-01 15:04
2011.05.08
работа с SOAP через SSL


15-1295645386
Юрий
2011-01-22 00:29
2011.05.08
С днем рождения ! 22 января 2011 суббота


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


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский