Information générale
Titre:
Bug/Tricky feature of DateTime values
Hi Folks,
Here is an issue that annoyed me for a while. This is revelant to anyone who wants to store a time span into a table and chooses to use an integer field to do it.
Try this
? {09/27/97 08:30am} - {09/27/97 08:00am}
The result is correctly displayed as 1800. This is the number of seconds between the two times.
Now try
? INT({09/27/97 08:30am} - {09/27/97 08:00am})
The result once again is 1800 secs.
Now try
CREATE TABLE Test (Timespan I)
APPEND BLANK
REPLACE timespan WITH {09/27/97 08:30am} - {09/27/97 08:00am}
BROWSE
Hmmm, the value stored in the field is 1799. It seems the value returned by the subtraction of two time fields is not an integer value and it gets truncated when storing in a integer field.
This can be seen by doing
? STR({09/27/97 08:30am} - {09/27/97 08:00am},20,10)
The result of this is 1799.9999731779
Now why INT() does not truncate this I'm not sure.
Hey I just tried something else. This is crazy!
INT(2.999999) = 2
but
INT(2.9999999999999999) = 3
Anyway, back to my point. If you ever want to store a timespan in an Integer field. Make sure you either use INT or ROUND(value,0) before storing it in the table!
Have fun!
Darrel
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement