我有一个火鸟数据库(服务器上运行的版本2.1.3)并连接到它与德尔福2007年使用的目的[x](使用Interbase驾驶员)

我的一个数据库中的表看起来像这样的东西

CREATE TABLE MYTABLE
(
  MYDATE Timestamp NOT NULL,
  MYINDEX Integer NOT NULL,
  ...
  Snip
  ...
  PRIMARY KEY (MYDATE ,MYINDEX)
);

我可以添加到该表确定,在火焰罗宾它显示的时间戳领域为具有一毫秒的价值。

但当我做了选择所有(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当的格式。

我如何检索毫秒,从一个时间戳?

更新: 在这种情况下,帮助任何人在未来,这里是驱动我试图用于[X]和结果。

有帮助吗?

解决方案

我不知道如果火鸟实际上支持毫秒,但我知道一个事实,即InterBase驱动程序用于特尔斐2007年没有。这是因为InterBase不返回毫秒在其C API;虽然InterBase存储DateTimes子-毫秒的精确度,InterBase API返回时在C TM结构,其不包含毫秒的领域。因此,[x]设计用于InterBase是不要支持。所以,你会需要的变化驱动,至少假定火鸟实际上支持这在所有。

其他提示

我的同事(范德Kraan)只是检查:它的工作原理 FIBplus!

他检查与FIBPlus版6.9.6和火鸟2.1.1.

他inserte一current_timestamp插入,提取它 FormatDateTime('dd-mm-yyyy hh:nn:ss:zzz', TestpFIBDataSetMYDATE.Value) 然后他回到日期和时间,包括毫秒。

--jeroen

火鸟常见问题#305 说明如何轻松的工作围绕这可通过简单的varchar演员。

火鸟dbx驱动程序的存在(你可以尝试):

http://sites.google.com/site/dbxfirebird/ (免费)

http://www.upscene.com/products.dbx.dbx_fb.php

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top