下面的SQL Server代码返回上次更新到表(任何行)的时间日期。
SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update
FROM sys.dm_db_index_usage_stats
WHERE OBJECT_ID=OBJECT_ID('TableName')
AND (Index_ID = 1)
如果我在TFDQuery
中使用此功能,那么数据类型FDQuery1.FieldByName('last_user_update')
是什么?
如果我想在Delphi变量中的不同时间存储和比较这个值,我应该将它分配给哪个Delphi数据类型,Double?
答案 0 :(得分:3)
您使用TDateTime
。
虽然var
LastUpdate: TDateTime;
begin
//Do query etc.
...
LastUpdate:= MyQuery.FieldByName('last_user_update').AsDateTime;
在内部由双倍表示,但您不要使用双倍,因为您将错过所有日期/时间支持。
代码是这样的。
TDate
请注意,SQL Server 7及之前版本不支持 LastUpdate:= MyQuery.FieldByName('last_user_update').AsDate;
。因此,如果您只想要日期部分,则此代码将在SQL Server 7中失败。
save
稍后获取完整的DateTime并删除Time部分。 但是,您正在使用2008,因此只需提取日期即可。
这是一个DateTime函数列表:http://www.delphibasics.co.uk/ByFunction.asp?Main=DatesAndTimes