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) '12.0.1.3298',20120727,'2012-07-27 00:00:00.000',1 asked 27 Jul '12, 11:47 Breck Carter |
This is covered in Ivan's whitepaper on mixed-type comparisons, which can be found on my blog. answered 30 Jul '12, 08:48 Glenn Paulley |
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 John Smirnios |