OK, it's a feature, not a bug, but successfully converting between a TIMESTAMP and an INTEGER is [cough] unexpected, especially when the TIMESTAMP becomes a DATE.
So... where can I read about this behavior, and what else I should watch out for?
BEGIN DECLARE @x INTEGER; DECLARE @y TIMESTAMP; SET @x = CURRENT TIMESTAMP; SET @y = @x; SELECT @@VERSION, @x, @y, ISDATE ( @x ); END; @@VERSION,@x,@y,ISDATE(@x) '18.104.22.16898',20120727,'2012-07-27 00:00:00.000',1
This is the closest thing I can find readily: http://dcx.sybase.com/index.html#1201/en/dbreference/comparisons-date-wsqltype.html
"Exact numeric values of type SMALLINT, INTEGER, BIGINT, and NUMERIC can be converted to date values. The conversion is performed by treating the number as a string. For example, the integer value 20100401 represents the first day of April in 2010."
answered 27 Jul '12, 22:04