Introduction
In this post, I am going to explain the SQL statements which are used to to get the date and time difference in a valid format; for example, one hour ago, 30 minutes ago, one week ago, one month ago, and so on.

Implementation
When you work with any data-driven application, sometimes, you need to fetch the date and time from the database and display in your Web/Windows form based on your requirement. So today, I will show you the proper way and format to get/fetch the date and time from your database and display it in a proper manner.
First, I will create one SQL function that will return the string with the date and time.
SQL Function
  1. CREATE FUNCTION GetDateFormat
  2. (
  3. @FROM_DATE DATETIME ,
  4. @TO_DATE DATETIME
  5. )
  6. RETURNS
  7. VARCHAR(100)
  8. AS
  9. BEGIN
  10. DECLARE @Date
  11. AS
  12. VARCHAR(100)
  13. SELECT @Date = CASE WHEN DATEDIFF(mi, @FROM_DATE, @TO_DATE) <= 1
  14. THEN'1 min ago'
  15. WHEN DATEDIFF(mi, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(mi, @FROM_DATE, @TO_DATE) <= 60 THEN
  16. CONVERT(VARCHAR, DATEDIFF(mi, @FROM_DATE, @TO_DATE)) + ' mins ago'WHEN DATEDIFF(hh, @FROM_DATE, @TO_DATE) <= 1 THEN
  17. CONVERT(VARCHAR, DATEDIFF(hh, @FROM_DATE, @TO_DATE)) + ' hour ago'WHEN DATEDIFF(hh, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(hh, @FROM_DATE, @TO_DATE) <= 24 THEN
  18. CONVERT(VARCHAR, DATEDIFF(hh, @FROM_DATE, @TO_DATE)) + ' hrs ago'WHEN DATEDIFF(dd, @FROM_DATE, @TO_DATE) <= 1 THEN
  19. CONVERT(VARCHAR, DATEDIFF(dd, @FROM_DATE, @TO_DATE)) + ' day ago'WHEN DATEDIFF(dd, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(dd, @FROM_DATE, @TO_DATE) <= 7 THEN
  20. CONVERT(VARCHAR, DATEDIFF(dd, @FROM_DATE, @TO_DATE)) + ' days ago'WHEN DATEDIFF(ww, @FROM_DATE, @TO_DATE) <= 1 THEN
  21. CONVERT(VARCHAR, DATEDIFF(ww, @FROM_DATE, @TO_DATE)) + ' week ago'WHEN DATEDIFF(ww, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(ww, @FROM_DATE, @TO_DATE) <= 4 THEN
  22. CONVERT(VARCHAR, DATEDIFF(ww, @FROM_DATE, @TO_DATE)) + ' weeks ago'WHEN DATEDIFF(mm, @FROM_DATE, @TO_DATE) <= 1 THEN
  23. CONVERT(VARCHAR, DATEDIFF(mm, @FROM_DATE, @TO_DATE)) + ' month ago'WHEN DATEDIFF(mm, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(mm, @FROM_DATE, @TO_DATE) <= 12 THEN
  24. CONVERT(VARCHAR, DATEDIFF(mm, @FROM_DATE, @TO_DATE)) + ' mnths ago'WHEN DATEDIFF(yy, @FROM_DATE, @TO_DATE) <= 1 THEN
  25. CONVERT(VARCHAR, DATEDIFF(yy, @FROM_DATE, @TO_DATE)) + ' year ago'WHEN DATEDIFF(yy, @FROM_DATE, @TO_DATE) > 1 THEN
  26. CONVERT(VARCHAR, DATEDIFF(yy, @FROM_DATE, @TO_DATE)) + ' yrs ago'END
  27. RETURN @Date
  28. END
Now, let us see how you can use this SQL function. You just need to pass the "from" and "to" date in the created function as parameters.
  1. DECLARE @FromDate DATETIME
  2. SET @FromDate ='2018-08-22 11:48:49.830'
  3. select dbo.GetDateFormat(@FromDate,GETDATE()) [Date]