5

I'm using this query: SELECT NOW() - date AS elapsed FROM ...

Date column is TIMESTAMP. It returns 41632 when elapsed time is about 4 hours and 20 minutes. It's not timestamp. What is it?

Or is there any better way to get elapsed time and generate with PHP like this: "2 minutes ago" "3 hours ago" "yesterday 22:32"

Thanks a lot!

ucha
  • 363
  • 2
  • 4
  • 12

2 Answers2

19

Use the TimeStampDiff function

  select TIMESTAMPDIFF(MINUTE, NOW(), timestamp_column) FROM my_table 
Conrad Frix
  • 51,984
  • 12
  • 96
  • 155
0

This will show values like:

1 month
6 months
4 years
1 year
12 years
...
IF (
   TIMESTAMPDIFF(YEAR, timestamp_column, NOW()) > 0,
   CONCAT(TIMESTAMPDIFF(YEAR, timestamp_column, NOW()), " year", IF(TIMESTAMPDIFF(YEAR, timestamp_column, NOW())=1,"","s")),
   CONCAT(TIMESTAMPDIFF(MONTH, timestamp_column, NOW()), " month", IF(TIMESTAMPDIFF(MONTH, timestamp_column, NOW())=1,"","s"))
)
countach
  • 447
  • 6
  • 5