如何获取服务器时间(在线等待)急急!100分

yst_killed 2003-10-08 10:36:19
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "Select day(getdate()) as day";
ADOQuery1->Open();
day = ADOQuery1->FieldValues["day"];

我想用同样的方法获取小时,分钟,秒
可是我不知道怎么写了!
谢谢了
...全文
52 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
路人丁 2003-10-09
  • 打赏
  • 举报
回复
void __fastcall TForm1::SetSysTime()
{
DataModule2->QTime->Close();
DataModule2->QTime->SQL->Clear();
DataModule2->QTime->SQL->Add("SELECT SYSDATE FROM DUAL");
try
{
DataModule2->QTime->Open();
TTime tTemTime=DataModule2->QTime->FieldByName("SYSDATE")->Value;
DataModule2->QTime->Close();
SYSTEMTIME setTime;
setTime.wYear=StrToInt(FormatDateTime("yyyy",tTemTime));
setTime.wMonth=StrToInt(FormatDateTime("mm",tTemTime));
setTime.wDay=StrToInt(FormatDateTime("dd",tTemTime));
setTime.wHour=StrToInt(FormatDateTime("hh",tTemTime));
setTime.wMinute=StrToInt(FormatDateTime("nn",tTemTime));
setTime.wSecond=StrToInt(FormatDateTime("ss",tTemTime));
SetLocalTime(&setTime);//设置本机时间
}
catch(...)
{
SBar->Panels->Items[1]->Text=FormatDateTime("mm'月'dd'日' hh'时'mm'分'ss'秒'",Now())+"错误:服务器无反应!";
}

nobill 2003-10-09
  • 打赏
  • 举报
回复
ADOQuery1->Close();
ADOQuery1->SQL->Text = "Select getdate() as Time";
ADOQuery1->Open();
TDatetime Time = ADOQuery1->FieldByName("dt")->AsDateTime;
day里面什么都有了。
如果不要毫秒,用FormatDateTime("YY-mm-DD",Time);
ljianq 2003-10-09
  • 打赏
  • 举报
回复
ADOQuery1->Close();
ADOQuery1->SQL->Text = "Select getdate() as day";
ADOQuery1->Open();
TDatetime day = ADOQuery1->FieldByName("dt")->AsDateTime;
day里面什么都有了。
佣工7001 2003-10-08
  • 打赏
  • 举报
回复
ADOQuery1->SQL->Text = "Select getdate() as dt";

TDatetime dt=ADOQuery1->FieldByName("dt")->AsDateTime;
直接取得datetime岂不简单!
BSC 2003-10-08
  • 打赏
  • 举报
回复
MSSQL:
小时:select SubString(convert(varchar(20),getdate(),120),12,2) as HH
分钟:select SubString(convert(varchar(20),getdate(),120),15,2) as MM
select SubString(convert(varchar(20),getdate(),120),12,8) as datetime
datetime
----------------
23:23:34
BSC 2003-10-08
  • 打赏
  • 举报
回复
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "Select getdate() as day";
ADOQuery1->Open();
day = ADOQuery1->FieldValues["day"];

FormatDateTime('YYYY-MM-DD HH:MM:SS',day)
zsgbox 2003-10-08
  • 打赏
  • 举报
回复
把代码向里面一拷,加入控件,设置Name,就万事OK了,你还想怎么简单,年轻人,不要太懒噢.
yst_killed 2003-10-08
  • 打赏
  • 举报
回复
这个方法不好。我不想那么麻烦
我想要简单点的方法!
zsgbox 2003-10-08
  • 打赏
  • 举报
回复
参考一下吧:
/* 取系统时间 */
CREATE PROC GET_SYS_DATETIME
@year varchar(4) output,
@month varchar(4) output,
@day varchar(4) output,
@hour varchar(4) output,
@min varchar(4) output,
@Sec varchar(4) output,
@Millisecond varchar(4) output
AS
declare @currentDatetime smalldatetime

set @currentDatetime=getdate()
set @year=DATENAME(Year,@currentDatetime)
set @month=DATENAME(Month,@currentDatetime)
set @day=DATENAME(Day,@currentDatetime)
set @hour=DATENAME(Hour,@currentDatetime)
set @min=DATENAME(Minute,@currentDatetime)
set @Sec=DATENAME(Second,@currentDatetime)
set @Millisecond=DATENAME(Millisecond,@currentDatetime)
RETURN

GO

DM->GET_SYS_DATETIME->ExecProc();
Str = DM->GET_SYS_DATETIME->Parameters->ParamByName("@year")->Value;
NewDate.da_year=atoi(Str.c_str());
Str = DM->GET_SYS_DATETIME->Parameters->ParamByName("@month")->Value;
NewDate.da_mon = (char)(atoi(Str.c_str()));
Str = DM->GET_SYS_DATETIME->Parameters->ParamByName("@day")->Value;
NewDate.da_day = (char)(atoi(Str.c_str()));
Str = DM->GET_SYS_DATETIME->Parameters->ParamByName("@hour")->Value;
NewTime.ti_hour = (unsigned char)(atoi(Str.c_str()));
Str = DM->GET_SYS_DATETIME->Parameters->ParamByName("@min")->Value;
NewTime.ti_min = (unsigned char)(atoi(Str.c_str()));
NewTime.ti_sec = (unsigned char)0;
NewTime.ti_hund = (unsigned char)0;
setdate(&NewDate);
settime(&NewTime);

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧