sql(關於日期的模糊查找)--小弟初學不知該不該這么命名 -开发者知识库

sql(關於日期的模糊查找)--小弟初學不知該不該這么命名 -开发者知识库,第1张

在數據庫里面,有一個字段是日期,存儲格式也是日期格式。現在,我想在窗體里面查詢該字段,但是輸入時只輸入年份(比如2000),然后查詢所有的2000-?-?的字段。還有就是查詢譬如說2000年3月到2000年6月的東西?
我的窗體是這樣的,有一edit,在里面輸入年份,完畢后,生成sql語句,在程序運行時動態查詢。請前輩們幫幫忙,最好能把sql語句寫完整些,因為小弟對where里面那些 ',還有 +,等等的東西還不太清楚,還有就是模糊查詢的“like”用法不太清楚。請幫我寫句完整的,讓小弟參考、學習。
謝謝了,請幫幫我!----初學delphi的cqwood。

5 个解决方案

#1


下面是輸入時只輸入年份,查詢所有該年內的記錄
procedure TForm1.Button1Click(Sender: TObject);
var
  Y, M, D : Word;
  MinDate, MaxDate: TDate;
  S_Date,E_Date : string;
  TempSQL : string;
begin
  Y := StrToInt(Edit1.Text);
  MinDate := EncodeDate(Y, 1, 1);    //求得當前輸入的年份第一天
  MaxDate := EncodeDate(Y, 12, 31);  //求得當前輸入的年份最后一天
  S_Date := FormatDateTime('MM''/''dd''/''yyyy', MinDate);
  E_Date := FormatDateTime('MM''/''dd''/''yyyy', MaxDate);
  TempSQL := Format('SELECT * FROM DB WHERE (Date>="%s") AND (Date<="%s")',
                   [S_Date,E_Date]);
  Query1.SQL.Clear;
  Query1.SQL.Add(TempSQL);
  Query1.RequestLive := True;
  Query1.Open;
……

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复