

But internally InterBase does allow for numbers using 19 digits of precision.

InterBase doesn't allow a precision of 19, whilst Sql Server actually specifies (19,4) for this field. There are some proposed defined sub_types for specific blob fields in the InterBase header file, but you don't have to worry about them, sub_type is defined only for our usage, the database engine doesn't care (unless of course you are using Blob Filters), you can use the default sub_type of zero or a negative sub_type that's you defined it doesn't effect the storage in anyway. +float(n)=double precision or float, depending on "n"įloat has no configurable precision in InterBase and is not directly equivalent to this type. +double precision, same as float(53)=double precision. But if you use the InterBase API, 1,469,902 and its negative counterpart are actually the full range. Note also however, that InterBase V6 will only accept up to year 9999 when passed as a string, so the limit would actually be a value of ('3').

So, the real range for InterBase is actually A.D. To prove the error, I insert into a table the value ('') where I had defined a timestamp field. some time ago, when going backwards in time, I reached year 1 whilst the InterBase LangRef in pages 19 and 20 says that the lower limit is year 100. There does however seem to be a bug in the InterBase documentation. The timestamp (old "date") type in InterBase is 8 bytes in length, so theres no surprise that it blows SQL Server away for both range and precision.

(the base year is 1858) with a precision of 1/10 millisecond. According to the manuals, InterBase can record from 1 Jan 100 a.d. In SqlServer, the type uses 4 bytes and records date and time data from January 1, 1753, to December 31, 9999, with an accuracy of three-hundredths of a second, or 3.33 milliseconds. The "datetime" definition in SqlServer does seem better to me. "timestamp" carries the meaning of an automatic mark of 'NOW' or current_timestamp and this is not true, this field only keeps both date and time but it doesn't get filled automatically. FOR select field from tbl FOR UPDATE INTO : variable AS CURSOR mycursor DO BEGIN where CURRENT OF mycursor ENDĪvailable in InterBase V5 and also InterBase V6 dialect 1 Īlso timestamp in InterBase V6, including dialect 1 (yes, both date and timestamp are synonyms in IB6-dialect 1).īTW, I don't know why "timestamp" was used, it's misleading, I would have preferred datetime, maybe it's the SQL standard again.
