如何获取服务器上的当前日期时间 问题描述:系统中大部分功能中所使用的日期取自本机,因本机时间大都不一致,导致数据统计不准确。如何获取服务器上的当前日期时间 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Query1.SQL.Clear;Query1.SQL.Add('select getdate()')Query1.SQL.Open;Query1.Fields[0].AsDateTime function GetServerDateTime: TDateTime;var ASQL: string;begin ASQL := 'SELECT GETDATE()'; {写处你处理它的代码} result := ..AsDateTime;end; 对,sql server中就是‘select getdate()’ sql server中就有 getdate()这个涵数得到时间的 我做的:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type PTime_Of_Day_Info = ^TTime_Of_Day_Info; TTime_Of_Day_Info = record tod_elapsedt :Integer; tod_msecs :Integer; tod_hours :Integer; tod_mins :Integer; tod_secs :Integer; tod_hunds :Integer; tod_timezone :LongInt; tod_tinterval :Integer; tod_day :Integer; tod_month :Integer; tod_year :Integer; tod_weekday :Integer; end; function NetRemoteTOD(ServerName :PWideChar;var buffer :pointer) :Integer; stdcall; external 'netapi32.dll'; function NetApiBufferFree(buffer : Pointer) :Integer; stdcall; external 'netapi32.dll';type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Edit1: TEdit; procedure Button1Click(Sender: TObject); private FServerName :WideString; FElapseDt :Integer; FMSecs :Integer; FHours :Integer; FMins :Integer; FSecs :Integer; FHunds :Integer; FTInterval :Integer; FTimeZone :LongInt; FDay :Integer; FMonth :Integer; FYear :Integer; FWeekDay :Integer; function GetTOD(ServerName:WideString):Integer; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}function TForm1.GetTOD(ServerName: WideString): Integer;var Buffer :pointer; Rek :PTime_Of_Day_Info; ADate :TDateTime; ATime :TDateTime; FinalTime :TDateTime; THours, TMins, TSecs, TMSecs :Word; TYear, TMonth, TDay :Word;begin result:=NetRemoteTOD(PWideChar(ServerName), Buffer); if result=0 then begin Rek:=PTime_Of_Day_Info(Buffer); FServerName :=ServerName; FElapseDt :=Rek.tod_elapsedt; FMSecs :=Rek.tod_msecs; FHours :=Rek.tod_hours; FMins :=Rek.tod_mins; FSecs :=Rek.tod_secs; FHunds :=Rek.tod_hunds; FTInterval :=Rek.tod_tinterval; If Rek.tod_timezone <> -1 then begin FTimeZone:=Rek.tod_timezone div 60; end else FTimeZone:=0; FDay :=Rek.tod_day; FMonth :=Rek.tod_month; FYear :=Rek.tod_year; FWeekDay :=Rek.tod_weekday; ADate:=EncodeDate(FYear, FMonth, FDay); ATime:=EnCodeTime(FHours, FMins, FSecs, FHunds); FinalTime:=StrToDateTime(DateTimeToStr(ADate) + ' ' + TimeToStr(ATime)); FinalTime:=FinalTime - (FTimeZone / 24); decodetime(FinalTime,THours, TMins,TSecs,TMSecs); FHours:=Integer(THours); fmins:=integer(tmins); fsecs:=integer(tsecs); decodeDate(FinalTime,TYear, TMonth,TDay); FYear:=Integer(TYear); FMonth:=Integer(TMonth); FDay:=Integer(TDay); Label1.Caption:=inttostr(fyear)+inttostr(fmonth)+inttostr(fday)+':'+inttostr(fhours)+':'+inttostr(fmins)+':'+inttostr(fsecs); end; NetApiBufferFree(Buffer);end;procedure TForm1.Button1Click(Sender: TObject);begin GetTOD(edit1.Text);end;end. 这是指通过局域网得某台计算机时间,在2000,NT下可以如果是MSSQL同意楼上的, 最简单的方法:Query1.SQL.Clear;Query1.SQL.Add('select getdate()')Query1.SQL.Open; 注意不同的数据库系统所用的取时间SQL语句是不一样的 请问-怎么把delphi中的十六进制图片资源导出? 类继承的问题. webbrowser怎么用? 怎么把bitmap以大长二进制数据形式存入access,急 菜鸟请问TDataSet问题。 版主请进 100分 请教简单SQL问题及报表输出问题 请问:如何实现程序被删除后,再次重起系统后依然恢复? Treeview 问题请教 ClientDataSet执行关闭,为什么还会执行BeforeGetRecords事件呢? 为什么我在调用自定义预览窗口时,第一次可以,再调用一次就出错 dbcombobox
Query1.SQL.Add('select getdate()')
Query1.SQL.Open;
Query1.Fields[0].AsDateTime
var
ASQL: string;
begin
ASQL := 'SELECT GETDATE()';
{写处你处理它的代码}
result := ..AsDateTime;
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
PTime_Of_Day_Info = ^TTime_Of_Day_Info;
TTime_Of_Day_Info = record
tod_elapsedt :Integer;
tod_msecs :Integer;
tod_hours :Integer;
tod_mins :Integer;
tod_secs :Integer;
tod_hunds :Integer;
tod_timezone :LongInt;
tod_tinterval :Integer;
tod_day :Integer;
tod_month :Integer;
tod_year :Integer;
tod_weekday :Integer;
end;
function NetRemoteTOD(ServerName :PWideChar;var buffer :pointer) :Integer; stdcall; external 'netapi32.dll';
function NetApiBufferFree(buffer : Pointer) :Integer; stdcall; external 'netapi32.dll';
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
FServerName :WideString;
FElapseDt :Integer;
FMSecs :Integer;
FHours :Integer;
FMins :Integer;
FSecs :Integer;
FHunds :Integer;
FTInterval :Integer;
FTimeZone :LongInt;
FDay :Integer;
FMonth :Integer;
FYear :Integer;
FWeekDay :Integer;
function GetTOD(ServerName:WideString):Integer;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function TForm1.GetTOD(ServerName: WideString): Integer;
var Buffer :pointer;
Rek :PTime_Of_Day_Info;
ADate :TDateTime;
ATime :TDateTime;
FinalTime :TDateTime;
THours,
TMins,
TSecs,
TMSecs :Word;
TYear,
TMonth,
TDay :Word;
begin
result:=NetRemoteTOD(PWideChar(ServerName),
Buffer);
if result=0 then
begin
Rek:=PTime_Of_Day_Info(Buffer);
FServerName :=ServerName;
FElapseDt :=Rek.tod_elapsedt;
FMSecs :=Rek.tod_msecs;
FHours :=Rek.tod_hours;
FMins :=Rek.tod_mins;
FSecs :=Rek.tod_secs;
FHunds :=Rek.tod_hunds;
FTInterval :=Rek.tod_tinterval; If Rek.tod_timezone <> -1 then
begin
FTimeZone:=Rek.tod_timezone div 60;
end
else
FTimeZone:=0; FDay :=Rek.tod_day;
FMonth :=Rek.tod_month;
FYear :=Rek.tod_year;
FWeekDay :=Rek.tod_weekday; ADate:=EncodeDate(FYear, FMonth, FDay);
ATime:=EnCodeTime(FHours, FMins, FSecs, FHunds); FinalTime:=StrToDateTime(DateTimeToStr(ADate) + ' ' + TimeToStr(ATime));
FinalTime:=FinalTime - (FTimeZone / 24); decodetime(FinalTime,THours, TMins,TSecs,TMSecs); FHours:=Integer(THours);
fmins:=integer(tmins);
fsecs:=integer(tsecs); decodeDate(FinalTime,TYear, TMonth,TDay);
FYear:=Integer(TYear);
FMonth:=Integer(TMonth);
FDay:=Integer(TDay);
Label1.Caption:=inttostr(fyear)+inttostr(fmonth)+inttostr(fday)+':'+inttostr(fhours)+':'+inttostr(fmins)+':'+inttostr(fsecs);
end;
NetApiBufferFree(Buffer);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetTOD(edit1.Text);
end;end.
Query1.SQL.Clear;
Query1.SQL.Add('select getdate()')
Query1.SQL.Open;