2016-04-30 6 views
0

Der SQL Server-Code unten gibt das Zeit-Datum der letzten Aktualisierung eine Tabelle (jede Zeile.)Delphi-Datentyp für SQL Server last_user_update

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) 

Wenn ich dies in einem TFDQuery verwenden, was ist der Datentyp FDQuery1.FieldByName('last_user_update')?

Wenn ich diesen Wert zu verschiedenen Zeiten in einer Delphi-Variablen speichern und vergleichen möchte, welchen Delphi-Datentyp soll ich ihm zuweisen, Double?

Antwort

3

Sie verwenden hierfür eine TDateTime.
Obwohl die TDateTime intern durch ein Double dargestellt wird, verwenden Sie kein Double, weil Sie die gesamte Datum/Uhrzeit-Unterstützung verpassen werden.

Der Code geht so.

var 
    LastUpdate: TDateTime; 
begin 
    //Do query etc. 
    ... 
    LastUpdate:= MyQuery.FieldByName('last_user_update').AsDateTime; 

Beachten Sie, dass SQL Server 7 und vor haben keine Unterstützung für TDate. Also, wenn Sie nur das Datum Teil wird dieser Code wollen nicht in SQL Server 7.

LastUpdate:= MyQuery.FieldByName('last_user_update').AsDate; 

Nehmen Sie einfach die vollständige Datetime und Streifen des Zeit Teil später. Allerdings arbeiten Sie mit 2008, also nur das Extrahieren des Datums wird für Sie gut funktionieren.

Hier ist eine Liste der DateTime-Funktionen: http://www.delphibasics.co.uk/ByFunction.asp?Main=DatesAndTimes