请教:
我使用:select * from 主表 where 日期=now,结果集为空,
检查发现access的日期字段是使用日期和时间格式如2003-12-20 11:00:00,
因此我得到的结果当然是空的,
如何使用SQL使我能得到日期为今天的所有记录?
我使用:select * from 主表 where 日期=now,结果集为空,
检查发现access的日期字段是使用日期和时间格式如2003-12-20 11:00:00,
因此我得到的结果当然是空的,
如何使用SQL使我能得到日期为今天的所有记录?
解决方案 »
- WIN7收不到UDP广播
- BDE连接ACCESS数据库,提示需要用户名密码
- 调用vc制作的dll的问题
- [求助]用internetopenurl获取网页代码出现问题。
- delphi之家欢迎大家的加入.共同交流技术..13771002
- 在quickreport中怎样在一页中多次打印Column Header
- dbgrid怎么导出execl表
- 展开树(TTree)结点问题?
- 请教一个 修改 表结构 的问题。。。。。。。。。。。。。
- 文件占坑后怎么取消
- 如何在Form1中执行form2中按钮click,请帮手,在线等…
- 请教关于C/S结构的数据库编程时需要注意的问题?(与单机filebase类型数据库做比较)
所以产旬的时候很可能是还是没有结果的 说的不一定对的啊
你可以在delphi完成日期的转化的
StrtoDateTime(FormatDateTime('yyyy-mm-dd', Now()))获得当前的没有时间的日期的
然后再sql中利用参数来实现的
adoQuery.sql.add('select * from 主表 where 日期 between date1 and date2');
decodeDatetim(now,year,month,day,hour,minute,second,msecond)
date1 :=encodeDatetime(year,month,day,00,00,00,00)
date2 :=encodeDatetime(year,month,day,23,59,59,999)
adoQuery.parameters.fieldByName('date1').value :=date1;
adoQuery.parameters.fieldByName('date2').value :=date2;
adoQuery.open;
来得到结果集的,发现比较罗嗦,想知道更简单的时间判断方法。另外我的access不运行在sql server下。
请教大侠高见!
也想知道关于这方面的东西特别是ADOQuery的知识
select * from 主表 where 日期=#2003-12-22#
如果是SQl:
select * from 主表 where 日期='2003-12-22'
由上可以看到它们的日期格式是不一样
楼上说的是固定的日期的时候的SQL表达式,如果是变化的话,你在Delphi中可以这样写:
ADOQuery.Add('select * from 主表 where 日期='+DateToStr(Today()));
//其中Today是取当前日期函数,这个函数需要引用DateUtils单元
//////////////////////////////////////////////////////////////////////
select * from 主表 where 日期='#'+temp_time+'#';
非常感谢!