13.10.2010, 01:11 | #11 |
Пользователь
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76
раз(а) в 76 сообщениях
Обратиться по нику Цитата выделенного |
хм... ну допустим
а если дата будет забита так: "19.08.19.8" (сегодня случайно нашел такую в базе, там еще много подобных) тогда какой результат будет? пропустит "инвалидку" или выдаст ошибку? |
В Минюст Цитата Спасибо |
13.10.2010, 09:43 | #12 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
пропустит. Но можно написать запрос, который такие не валидные даты отберет для дальнейшего исправления
|
В Минюст Цитата Спасибо |
13.10.2010, 10:30 | #13 |
Пользователь
Регистрация: 22.06.2010
Сообщений: 14
Благодарности: 0
Поблагодарили 2
раз(а) в 2 сообщениях
Обратиться по нику Цитата выделенного |
|
В Минюст Цитата Спасибо |
13.10.2010, 14:35 | #14 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
Код:
execute ibeblock returns (npp integer, novalid varchar(200)) as begin /* создаем регэксп для даты */ re = ibec_re_Create('(0[1-9]|[12][0-9]|3[01]).(0[1-9]|1[012]).(19[0-9]{2}|200[0-9]|2010)'); /* выбираем npp и даты рождения */ for select ip.npp, ip.date_born_d from ip into :npp, :novalid do begin /* если not null, то смотрим через регэксп */ if (:novalid is not null) then begin /* возвращает true, если содержимое :novalid подходит под регэксп re и false, если :novalid не подходит */ res = ibec_re_Exec(re, :novalid); /* нам нужно вывести результат false */ if (res = 0) then suspend; end; /* выводим также, если дата рождения null */ else suspend; end; ibec_re_Free(re); end |
В Минюст Цитата Спасибо |
13.10.2010, 14:54 | #15 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12
раз(а) в 12 сообщениях
Обратиться по нику Цитата выделенного |
Ходят слухи что в свежем FB можно регексы в запросах пользовать
что сводит код к Код:
select ip.npp, ip.date_born_d from ip where ip.date_born_d matching '[0-3][0-9]\.[0-1][0-9]\.(19|20)[0-9]{2}' |
В Минюст Цитата Спасибо |
13.10.2010, 14:58 | #16 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
Ага. Только не matching, а similar to
|
В Минюст Цитата Спасибо |
13.10.2010, 15:18 | #17 |
Пользователь
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12
раз(а) в 12 сообщениях
Обратиться по нику Цитата выделенного |
да, точно - пример из dev-диспута схватил
|
В Минюст Цитата Спасибо |
13.10.2010, 19:47 | #18 |
Модератор ФССП
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548
раз(а) в 528 сообщениях
Обратиться по нику Цитата выделенного |
об чем этот селект - просвятите плз....
__________________
Yo Way Yo, Home Va-Ray, Yo Ay-Rah, Jerhume Brunnen-G |
В Минюст Цитата Спасибо |
13.10.2010, 20:23 | #19 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
Искать по "регулярные выражения".
|
В Минюст Цитата Спасибо |
13.10.2010, 20:34 | #20 |
Пользователь
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76
раз(а) в 76 сообщениях
Обратиться по нику Цитата выделенного |
undermind
так можно, к примеру, 35.02.2019 пропустить |
В Минюст Цитата Спасибо |
|
|
«Закония» в соц. сетях