У меня есть база данных Firebird (работает на сервере версии 2.1.3), и я подключаюсь к ней с Delphi 2007, используя объекты DBExpress (используя драйвер Interbase)
Одна из моих таблиц в базе данных выглядит примерно так
CREATE TABLE MYTABLE
(
MYDATE Timestamp NOT NULL,
MYINDEX Integer NOT NULL,
...
Snip
...
PRIMARY KEY (MYDATE ,MYINDEX)
);
Я могу добавить в таблицу ОК, и в Flame Robin оно показывает поле отметки времени как имеющее значение в миллисекундах.
Но когда я делаю выбор всех (select * from MYTABLE
) в таблице, я не могу получить значение в миллисекундах, так как оно всегда возвращается как 000.
Это вызывает серьезные проблемы, так как является частью первичного ключа (к сожалению, я не разработал таблицу и не имею права ее изменять).
Я пробовал следующее, чтобы получить значение в миллисекундах:
sql1.fieldbyname('MYDATE').AsDateTime;
sql1.fieldbyname('MYDATE').AsSQLTimeStamp;
sql1.fieldbyname('MYDATE').AsStirng;
sql1.fieldbyname('MYDATE').AsFloat;
Но все они возвращаются 14/09/2009 14: 25: 06.000 при форматировании.
Как извлечь миллисекунду из отметки времени?
UPDATE:
Если в будущем это кому-нибудь поможет, вот драйверы, которые я пробовал для DBExpress, и результаты.