All timestamp values in Sybase CEP, including row timestamps, are measured and stored internally in absolute microseconds.
These timestamps are converted and interpreted as actual dates and times relative to a standard base (also called "the epoch") which, in the Sybase CEP Engine, is January 1, 1970. A timestamp of 0 represents 12:00 midnight UTC (Coordinated Universal Time, also widely known as Greenwich Mean Time or GMT) on the epoch date.
Microsecond timestamp values may be positive or negative. Positive timestamps reflect times after the epoch, while negative timestamp values reflect times prior to the epoch. Thus, a timestamp value of 100 represents 100 microseconds past midnight on January 1, 1970, while a timestamp value of -60,000,000 (60 seconds in microseconds) represents 1 minute prior to midnight on December 31, 1969.
Sybase CEP does not interpret or infer the actual meaning of row timestamps, and uses them solely to synchronize all timed events within the system. These timestamps may designate a variety of events, depending on their usage in the application. Proper use of row timestamps in queries is dependent upon understanding the origin and meaning of a timestamp.
For instance, if the row timestamp is being set by Sybase CEP Engine, queries that use the row timestamp need to be aware that the timestamp doesn't necessarily indicate when the event represented by the data row actually took place. The actual time the event took place could differ from the system-generated row timestamp by several seconds, or even minutes or hours. Row timestamps supplied by the Sybase CEP Engine always indicate only the exact time when the row entered Sybase CEP Engine, or when it was created by a query.
Sybase CEP can also use adapter-supplied row timestamp values "as is". It is then the adapter's responsibility to ensure that the assigned row timestamp value has the appropriate meaning for the application, depending upon the actual data source.