Timestamp: seconds truncated when stored as variable
Operating system version
Description of the issue
When a timestamp value with 0 seconds is created as a full value, either in a field, or as a function (TIMESTAMP (DATE (MM;DD;YYYY); TIME (HH;MM;SS)), and this value is then stored as a variable, the seconds get truncated.
So, for example, 07/05/2015 21:50:00 becomes 07/05/2015 21:50 when stored as a variable.
This behaviour gets critical when one uses the variable to perform a find with a greater than symbol in a script step. The inserted find value then becomes "> 07/05/2015 21:50:*" - in other words, a star is inserted for the seconds, and all values between 21:50 and 21:51 are ignored, whereas the original intention was to find all results including timestamps between 21:50 and 21:51 (as the search should have said "> 07/05/2015 21:50:00").
I noticed this issue in a synch system built to synch data between two databases, where around 5% of the data was not being synchronised because of this issue!
Steps to reproduce the problem
Create a global field in Table A to hold a timestamp value, and fill it with the following value:
Create a script that stores this value in a variable (e.g. $$timestamp).
Observe in the data viewer how the timestamp turns into "07/05/2015 21:50" (without the seconds).
Use the variable in a search script step on another Table B, where the value sought is ">" & $$timestamp.
Execute the script and observe how the find turns into "> 07/05/2015 21:50:*".
Using a greater than or equal sign instead of a greater than sign circumvents the problem. Another workaround is to artificially expand the variable to include the seconds.