2013-09-24 2 views
6

Как использовать функции добавления даты или даты diff У меня есть сценарий, где мне нужно найти людей, чьи дни рождения либо сегодня, либо через n дней. Как я могу достичь этого в informix.Функции времени по времени help informix

SELECT mbr_code, fname, lname 
INTO rsMbrCode, rsFName, rsLName 
FROM asamembr 
WHERE cust_code = membershipnumber 
    AND ((day(bdate) - day(CURRENT)) <= rsTest 
    AND MONTH(bdate) = month(CURRENT)) 

RETURN rsMbrCode, rsFName, rsLName WITH RESUME; 

ответ

7

Вы могли бы сделать что-то вроде этого:

SELECT mbr_code,fname,lname 
INTO rsMbrCode,rsFName,rsLName 
FROM asamembr 
WHERE cust_code = membershipnumber 
    AND MDY(month(bdate),day(bdate),year(today)) 
    BETWEEN TODAY AND TODAY + <NUMBEROFDAYS> UNITS DAY; 

Вы построить дату с помощью MDY с MONTH и DAY от bdate и YEAR от TODAY. Затем вы видите, находится ли между датами, которые вы хотите сопоставить.

Documentation for MDY:

Функция MDY принимает в качестве аргументов три целых выражений, которые представляет месяц, день и год, и возвращает значение типа DATE.

  • Первый аргумент представляет собой номер месяца (от 1 до 12).
  • Второй аргумент представляет собой номер дня месяца (от 1 до 28, 29, 30 или 31, соответствующий месяцу)
  • Третье выражение представляет собой четырехзначный год. Вы не можете использовать двузначную аббревиатуру.
Смежные вопросы