I checked this query with my data.it is returning the following output.
SELECT last_sign_in_at,
CAST(DATEDIFF(yy, last_sign_in_at, GETDATE()) AS NVARCHAR(4)) + ' years, ' +
CAST(DATEDIFF(m, last_sign_in_at, GETDATE()) AS NVARCHAR(2)) + ' months, ' +
CAST(DATEDIFF(second, last_sign_in_at, GETDATE()) / 60 / 60 / 24 % 7 AS NVARCHAR(2)) + ' days, ' +
CAST(DATEDIFF(second, last_sign_in_at, GETDATE()) / 60 / 60 % 24 AS NVARCHAR(2)) + ' hours, ' +
CAST(DATEDIFF(second, last_sign_in_at, GETDATE()) / 60 % 60 AS NVARCHAR(2)) + ' minutes, ' +
CAST(DATEDIFF(second, last_sign_in_at, GETDATE()) % 60 AS NVARCHAR(2)) + ' seconds ago.' AS date_period
FROM users
Output
----------
last_sign_in_at date_period
2014-09-02 16:22:55 1 years, 14 months, 0 days, 7 hours, 30 minutes, 48 seconds ago.
Actually i want the output is 1 year, 2 months, 23 day ago....
suppose the user last_login_date is 2015-11-23 means.it returns 2 days ago.
Thank you.