Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / проверка возраста +18 / 7 сообщений из 7, страница 1 из 1
16.11.2014, 19:29:24
    #38807632
Legushka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка возраста +18
добрый день, перехожу со скуля на Postgre-)
подскажите как можно проверить у пользователя возраст на 18 летие?

в таблице есть поле birt_date, у разных персон есть даты рождения (например '1991-01-15' и '2001-05-20')
какую формулу можно сделать что бы возвращалось 1 если есть 18 лет и 0 если еще нет
с точностью до дня
...
Рейтинг: 0 / 0
16.11.2014, 19:50:53
    #38807641
Legushka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка возраста +18
подскажите как перевести количество дней в дату, дальше я сам)
...
Рейтинг: 0 / 0
16.11.2014, 20:15:05
    #38807646
Legushka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка возраста +18
сам себе ответил:
Код: plsql
1.
select case when (18-extract (year from age(timestamp DDD))>=0) then 1 else 0 end from ...



ребята подскажите для очень большой базы этот запрос критичен?
может есть быстрее способ?
...
Рейтинг: 0 / 0
16.11.2014, 20:24:39
    #38807649
Лопата
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка возраста +18
Legushkaсам себе ответил:
Код: plsql
1.
select case when (18-extract (year from age(timestamp DDD))>=0) then 1 else 0 end from ...



ребята подскажите для очень большой базы этот запрос критичен?
может есть быстрее способ?
индекс по birthday есть ?

если есть -- примерно
Код: sql
1.
WHERE birthday <= F{дата выборки, возрастной порог, прочая дебиловатая шняга задаваемая единожды}::date



запихнёшь свои измышления в F{} -- маладец
нет -- читай зиФакинМанъюал по фанкшанам до просветления
...
Рейтинг: 0 / 0
16.11.2014, 20:26:59
    #38807650
Лопата
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка возраста +18
поцкриптум:
фаншан желательно иммутабный. совсем накрайняк - стабиловатый, и невкоем -- не волатильный.
...
Рейтинг: 0 / 0
16.11.2014, 21:48:01
    #38807676
/\/\/\/\/\/\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка возраста +18
Может, имеет смысл пойти другим путем и немного изменить вопрос.
То есть спрашивать:
- Раньше какой даты должен родиться пользователь, чтобы ему было 18 полных лет?
Тогда исчезает функция, а появляется тупое (то есть целиком для индекса) сравнение.
...
Рейтинг: 0 / 0
17.11.2014, 06:51:16
    #38807782
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка возраста +18
Legushka,

Код: sql
1.
select (birthday < NOW() - interval '18 years') as ...



проверил, вроде бы работает. зачем усложнять?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / проверка возраста +18 / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]