I have a table in mysql with birth date column that saved as unix timestamp (bigint).
I want to write query like this:
SELECT ... as `age` FROM `tableName`
And
SELECT * FROM `tableName` WHERE ... > 30
When the 3 dots is the function that calculate the age from the birth date.
I know about the function TIMESTAMPDIFF, but it's not good if I save the birth date as unix timestamp.
What can I do?
Thanks
解决方案
From MySQL's date and time functions, we can combine TIMESTAMPDIFF, NOW, and FROM_UNIXTIME.
Supposing that dob is a Unix timestamp representing date of birth:
TIMESTAMPDIFF(YEAR, FROM_UNIXTIME(dob), NOW())
From there, it's simple enough to add a WHERE clause based on the column value.