sql问题,获取当前月内的所有数据

eric123 2001-06-15 11:01:00
paradox数据库,a.db有字段'登记日期',如何取得其当前年月内的所有记录。
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hujizong 2001-06-16
  • 打赏
  • 举报
回复
在Paradox表设计中将month定为第二索引,好象可以解决Invalid use of keyword
Token:month 的问题。
eric123 2001-06-15
  • 打赏
  • 举报
回复
怎么通不过?
Invalid use of keyword
Token:month
airhorse 2001-06-15
  • 打赏
  • 举报
回复

select * FROM a.db WHERE datediff(month,登记日期,getdate())=0

eric123 2001-06-15
  • 打赏
  • 举报
回复
往前提提
ghz2000 2001-06-15
  • 打赏
  • 举报
回复
楼上的大虾一不小心:
Sql.Add('Select * from TableName Where Date>=StartDate and Date<=EndDate');
应为:
Sql.Add('Select * from TableName Where Date>='+StartDate+' and Date<='+EndDate);


qkl 2001-06-15
  • 打赏
  • 举报
回复
select * FROM a.db WHERE 登记日期>=:d1 and 登记日期<:d2

程序中:
ParamByName('D1').AsDate := “当月一号”
ParamByName('D2').AsDate := “下月一号”

注:在 paradox 数据库,中没有提供太多的内建函数,这是你只有借助程序将其设计出来。
Apollo47 2001-06-15
  • 打赏
  • 举报
回复
var yy,mm,dd :Word;
StartDate,EndDate: TDateTime;
begin
DecodeDate(now,yy,mm,dd);
dd:=MonthDays[IsLeapYear(yy),mm];// 当前年月的天数;
StartDate:=EncodeDate(yy,mm,1); // 当前年月的第一天;
EndDate:=EncodeDate(yy,mm,dd); // 当前年月的最后一天;
Sql.Add('Select * from TableName Where Date>=StartDate and Date<=EndDate');
end;

ghz2000 2001-06-15
  • 打赏
  • 举报
回复
select * from a.db where month(登记日期)<month(getdate())
and year(登记日期)<year(getdate())
eric123 2001-06-15
  • 打赏
  • 举报
回复
再提

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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