+ 1
Sql
I want to include a constraint dateOfBirth that it should be greater than 21 using sql oracle please help. In a way today's date should be greater than the dateOfBirth with 21 or more. Please help
1 Antwort
+ 6
To find age, use DATEDIFF(NOW(), dateOfBirth). Put that into a WHERE clause to filter ages >=21.
EDIT: I apologize that somehow I misinterpreted which SQL engine you were asking about. Oracle is different. In Oracle you can get days between dates by mere subtraction, (SYSDATE - dateOfBirth). Years can be calculated by dividing by days in a year which is precisely 365.2425. Compare that with 21 in the WHERE clause.
This method is a fair approximation within a few days but it might not be perfectly in phase to actual leap years. There are more elaborate ideas on Stack Overflow. https://stackoverflow.com/questions/3015431/oracle-age-calculation-from-date-of-birth-and-today