Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

запрос в Firebird

Всем привет, такой вопрос:
как правильно написать SQL запрос для Firebird который выберет из
таблицы записи о людях которым больше N лет, типа
SELECT * FROM PEOPLES WHERE ....BIRTH....
таблица поле с записью даты рождения
Спасибо

Ответить   Thu, 28 Sep 2006 19:11:19 +0300 (#595313)

 

Ответы:

Привет portos_ua,

Вы мне письмо написали 28 сентября 2006 г. (четверг), а я Вам отвечу вот что:

SELECT *
FROM Peoples
WHERE (CurrentData-Birth)/365.25>N

где CurrentData - текущая дата,
CurrentData, Birth: TDateTime
365.25 - среднее количество дней в году :)

или

WHERE (CurrentData-N*365.25)>Birth
где выражение CurrentData-N*365.25 расчитыввается перед вызовом
запроса и вместо него подтавляется дата меньше на N лет

Вроде так :)

Афоризм i1: Она ему встретилась, а он ей попался.
Афоризм i2: Если вы не замечаете, что вами манипулируют, значит вы в руках профессионалов.
29 сентября 2006 г. 7:20:41

Просто студент и САПРист
Eugene mailto:rav***@o*****.ru
ICQ: 291-819-230

Ответить   Fri, 29 Sep 2006 07:26:33 +0400 (#595467)

 

Hello, portos_ua!

Если еще не нашел ответ...
Что-то типа:

DECLARE EXTERNAL FUNCTION ADDYEAR
TIMESTAMP,
INTEGER
RETURNS TIMESTAMP
ENTRY_POINT 'addYear' MODULE_NAME 'fbudf';

SELECT * FROM PEOPLES WHERE BIRTH < ADDYEAR((select cast('NOW' as timestamp)
from rdb$database), -N);

Возможны ошибки, не проверял.

Ответить   "Vladimir V.Petrov" Mon, 2 Oct 2006 09:40:57 +0300 (#596391)