怎么统一access中的日期/时间类型与c++ builder中的日期/时间类型
如何统一access中的日期/时间类型与c++ builder中的日期/时间类型
如何统一access中的日期/时间类型字段与c++ builder中的日期/时间类型,然后比较他们的大小。
我要把到期的记录删除(把数据库里面的到期时间与当前日期进行比较),只精确到天。
这样比较好像不行啊。
Select CardNo from Card where EndTime <= " +cEndTime+"这样比较大小好像是可以的,但是不能正确的比较日期的大小,不知道如何统一他们的单位,EndTime在数据库中是日期/时间格式的,记录如 3012-3-12 没有时间的,只有日期,望高人指点。
------解决方案--------------------
如何统一access中的日期/时间类型字段与c++ builder中的日期/时间类型,然后比较他们的大小。
我要把到期的记录删除(把数据库里面的到期时间与当前日期进行比较),只精确到天。
- C/C++ code
DateTime cEndTime = FormatDateTime("yyyy-m-d",Now()) ; DataModule35->qry3->Close(); DataModule35->qry3->SQL->Clear(); DataModule35->qry3->SQL->Add("Select " + Form1->CdtCol + " from cdtinfo"); DataModule35->qry3->SQL->Add(" where ComputerNo = :ComputerNo and (TerminalType = 3 or TerminalType = 4)"); DataModule35->qry3->SQL->Add(" and Address in (select Author from CardAuthor where CardNo in(Select CardNo from Card where EndTime <= " +cEndTime+"))");
这样比较好像不行啊。
Select CardNo from Card where EndTime <= " +cEndTime+"这样比较大小好像是可以的,但是不能正确的比较日期的大小,不知道如何统一他们的单位,EndTime在数据库中是日期/时间格式的,记录如 3012-3-12 没有时间的,只有日期,望高人指点。
------解决方案--------------------
- C/C++ code
where EndTime <=#" +cEndTime+"# ))");
------解决方案--------------------
数据库中时间的比较,建议用between ... and ...
Access中的时间字符串需要用#号括起来
SQLServer中的时间字符串则需要用单引号括起来
------解决方案--------------------
从数据库取出来AsDateTime就和BCB一致了。