C\C++学习 公积金相关帖子汇总 魅族M8SDK学习系列不断更新中 Mini开发小组软件发布

[Delphi] 关于日期查询

[ 9225 查看 / 6 回复 ]

  1. var
  2. sql,year,month:String;
  3. 按当月查询
  4. begin
  5. year:=FormatDateTime('yyyy',date);
  6. month:=FormatDateTime('mm',date);
  7. begin
  8. data.customquery.Close;
  9. data.customquery.SQL.Clear;
  10. data.customquery.SQL.Add('select sum(custommoney) as num from custom where FormatDateTime('yyyy',customdate)='''+year+''' and FormatDateTime('mm',customdate)='''+month+'''');
  11. data.customquery.Open;
  12. ShowMessage('当月总盈利'+FloatToStr(data.customquery.FieldByName('num').asFloat)+'元');
  13. end;
  14. 按时间段进行查询
  15. sql:='select  sum(custommoney) as num from custom where customdate>='+FormatDateTime('yyyy-mm-dd',ftime.DateTimePicker1.Date)+' and customdate<='+FormatDateTime('yyyy-mm-dd',ftime.DateTimePicker2.Date)+'';/DateTimePicker1,DateTimePicker2为ftime窗体中的两个控件/
  16. data.customquery.Close;
  17. data.customquery.SQL.Clear;
  18. data.customquery.SQL.Add(sql);
  19. data.customquery.Open;
  20. ShowMessage('总盈利'+FloatToStr(data.customquery.FieldByName('num').asFloat)+'元');
  21. end;
复制代码
不知道上述代码错在何处,按时间段查询在使用sql server数据库时正确,现在换成access就报错了.希望高手指教,很急,在线等
本主题由 皇帝 5207 于 2009-7-3 22:50:38 执行 主题分类 操作
分享 转发
TOP

回复: 关于日期查询

最后是能贴出SQL语句来,并且给一个好的排版。 从上面的代码来看,应该没有问题吧?
相信与不相信都是矛盾的.  5207宣!
欢迎您来到点滴论坛
TOP

回复:关于日期查询

不是  ACCESS 的SQL 规则和 SQL SERVER有所不同 。 这个需要实际操作一下才能知道。
我们都在人生的舞台上笨拙地舞蹈着,并自得其乐。
----
Tel : 13655310832
TOP

回复:关于日期查询

另外 你需要把错误的截图发出来。 如果不发 很多人都懒得建立一个测试工程去给你解决问题。因为调试需要的时间真的不少。
我们都在人生的舞台上笨拙地舞蹈着,并自得其乐。
----
Tel : 13655310832
TOP

回复:关于日期查询

不过如果是时间段问题,建议你用 DatePart函数。 ACCESS 示例:         sqltxt := format('DatePart("yyyy",[%s]) <= DatePart("yyyy",''%s %s'')',[ s_field , pdate, ptime ]);
我们都在人生的舞台上笨拙地舞蹈着,并自得其乐。
----
Tel : 13655310832
TOP

回复:关于日期查询

再给你贴一段出来 。。 刚刚那段太少了。         m_date.GetTextBuf( pdate , m_date.GetTextLen + 1 );         m_time.GetTextBuf( ptime , m_time.GetTextLen + 1 );         sqltxt := format('DatePart("yyyy",[%s]) <= DatePart("yyyy",''%s %s'')',[ s_field , pdate, ptime ]);         pdate,ptime 都是 PChar; m_date,m_time 都是 TDateTimePicker ;
我们都在人生的舞台上笨拙地舞蹈着,并自得其乐。
----
Tel : 13655310832
TOP

回复: 关于日期查询

procedure LessThan( m_date,m_time : TDateTimePicker ; const s_field : string ;var s_sql : string ); implementation procedure LessThan( m_date,m_time : TDateTimePicker ; const s_field : string ;var s_sql : string ); var sqltxt : string;         pdate,ptime : PChar; begin //        m_time.Format('yyyy-MM-dd hh:mm:ss') GetMem( pdate , m_date.GetTextLen + 1 ); GetMem(ptime,m_time.GetTextLen + 1);         m_date.GetTextBuf( pdate , m_date.GetTextLen + 1 );         m_time.GetTextBuf( ptime , m_time.GetTextLen + 1 );         sqltxt := format('DatePart("yyyy",[%s]) <= DatePart("yyyy",''%s %s'')',[ s_field , pdate, ptime ]);         sqltxt := format('%s and DatePart("m",[%s]) <= DatePart("m",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);         sqltxt := format('%s and DatePart("d",[%s]) <= DatePart("d",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);         sqltxt := format('%s and DatePart("h",[%s]) <= DatePart("h",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);         sqltxt := format('%s and DatePart("n",[%s]) <= DatePart("n",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);         sqltxt := format('%s and DatePart("s",[%s]) <= DatePart("s",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);         s_sql := sqltxt;         FreeMem( pdate );         FreeMem( ptime ); end; ---------------------------------------------- 算了。。还是把这个函数发出来。。。更详细的内容可以去我的博客找。
我们都在人生的舞台上笨拙地舞蹈着,并自得其乐。
----
Tel : 13655310832
TOP