How to select the members who has the age more than 18 (from current date) by SQL in teradata?
Simple logic is based on comparing DOB with the date 18 years before today.
If the datatype of DOB is DATE:
where DOB &lt; add_months(current_date, -18*12)

If it's an INT:
where DOB &lt; cast(add_months(current_date, -18*12) as int) + 19000000

If you want to show the age
trunc(months_between(current_date, DOB)/12)

or for INT
trunc(months_between(current_date, cast(DOB - 19000000 as date))/12)

+/- 19000000 is based on the internal format of a Teradata date:
(year - 1900) * 10000
+ month * 100
+ day