> Michael Stassen wrote: > <snip> > > Second, no, it won't overflow: > > > > mysql> SELECT SEC_TO_TIME(60*60*24*5); > > +-------------------------+ > > | SEC_TO_TIME(60*60*24*5) | > > +-------------------------+ > > | 120:00:00 | > > +-------------------------+ > > 1 row in set (0.00 sec) > > > > mysql> SELECT SEC_TO_TIME(60*60*24*50); > > +--------------------------+ > > | SEC_TO_TIME(60*60*24*50) | > > +--------------------------+ > > | 1200:00:00 | > > +--------------------------+ > > 1 row in set (0.00 sec) > > > > SEC_TO_TIME() is not limited to 24 hours. > > > > I should have added that the limits of a TIME column are documented in the > manual <http://dev.mysql.com/doc/refman/4.1/en/time.html>: > > TIME values may range from '-838:59:59' to '838:59:59'. The reason for > which the hours part may be so large is that the TIME type may be used > not only to represent a time of day (which must be less than 24 hours), > but elapsed time or a time interval between two events as well. (Note > that this interval may be much greater than 24 hours, or even negative.)
That's actually a very weird definition for a TIME datatype :-) It should have an "interval" datatype for such operations. > So some care may be needed if you will be storing the result, because > SEC_TO_TIME() can return a time outside of a TIME column's allowable range. With regards, Martijn Tonies Database Workbench - tool for InterBase, Firebird, MySQL, Oracle & MS SQL Server Upscene Productions http://www.upscene.com Database development questions? Check the forum! http://www.databasedevelopmentforum.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]