Collections:
Calculating Age in Days, Hours and Minutes in SQL Server
How To Calculate Age in Days, Hours and Minutes in SQL Server Transact-SQL?
✍: FYIcenter.com
On many Web sites, news items or blog articles are displayed with a publishing data and time represented in days, hours and minutes. To do this you can use the DATEDIFF() function with a simple algorithm as shown in the tutorial exercise below:
-- Age in days DECLARE @submit_date DATETIME; SET @submit_date = '2007-05-11 16:10:41.403'; SELECT 'Posted ' + CONVERT(VARCHAR(40), DATEDIFF(day, @submit_date, GETDATE())) + ' days ago.'; GO Posted 8 days ago. -- Age in days, hours and minutes - Wrong DECLARE @submit_date DATETIME; SET @submit_date = '2007-05-11 16:10:41.403'; SELECT 'Posted ' + CONVERT(VARCHAR(40), DATEDIFF(day, @submit_date, GETDATE())) + ' days, ' + CONVERT(VARCHAR(40), DATEDIFF(hour, @submit_date, GETDATE())) + ' hours, and ' + CONVERT(VARCHAR(40), DATEDIFF(minute, @submit_date, GETDATE())) + ' minutes ago.'; GO Posted 7 days, 186 hours, and 11202 minutes ago. -- Age in days, hours and minutes - Correct DECLARE @submit_date DATETIME; SET @submit_date = '2007-05-11 16:10:41.403'; SELECT 'Posted ' + CONVERT(VARCHAR(40), DATEDIFF(minute, @submit_date, GETDATE())/(24*60)) + ' days, ' + CONVERT(VARCHAR(40), DATEDIFF(minute, @submit_date, GETDATE())%(24*60)/60) + ' hours, and ' + CONVERT(VARCHAR(40), DATEDIFF(minute, @submit_date, GETDATE())%60) + ' minutes ago.'; GO Posted 7 days, 18 hours, and 42 minutes ago.
Notice how the correct number of days, hours, and minutes are calculated using the concepts of whole day, remaining partial day, whole hour, and remaining partial hour as shown below:
|...................|...................|...+...+.. |<------- number of whole days -------->|<------->| remaining partial day ---^ |<----------- number of whole hours ----------->|-| remaining partial hour ---^ |<----------- total number of minutes ----------->|
⇒Date/Time Operations and Functions in SQL Server Transact-SQL
2017-02-14, 1728👍, 0💬
Popular Posts:
How To Define Output Parameters in Stored Procedures in SQL Server Transact-SQL? Sometime a stored p...
How To Get Year, Month and Day Out of DATETIME Values in SQL Server Transact-SQL? You can use DATEPA...
Where to find answers to frequently asked questions on SQL Transaction Management in Oracle? Here is...
What Happens If the UPDATE Subquery Returns Multiple Rows in MySQL? If a subquery is used in a UPDAT...
What are single-byte character string data types supported in SQL Server Transact-SQL? Single-byte c...