一组日期查询出最近时间的日期?

sixgj 2018-04-02 10:04:52
code datetime
1 2014-1-1
1 2014-1-5
1 2014-1-10
2 2014-1-1
2 2014-1-19
4 2014-1-1
6 2014-1-1
6 2014-2-3


只想得到日期,如何简便的得到离现在日期最近的一组日期?且CODE为1
...全文
936 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2018-04-14
  • 打赏
  • 举报
回复
引用 11 楼 sixgj 的回复:
[quote=引用 6 楼 lyhoo163 的回复:] 建议你,使用另一个ADO控件查询,就可以了。二者之间不干涉。如query2或query3
我是用的另一个QUERY2,奇怪为什么有问题。[/quote] 出现问题,可能是QUERY1中的数据未保存,读入的数制不一致。这样的话,你可以将QUERY1中的数据,复制到QUERY2中通过循环来处理。
CaiBirdy 2018-04-13
  • 打赏
  • 举报
回复
最近时间是怎么定义的? 1)指数据库里最新时间(排序找最大值即可), 2)给一个指定时间找其最近的(找出大于指定时间的临时表中最小值,和小于指定时间的临时表中的最大值,再判断最小值和最大值哪个离指定时间更近)
sixgj 2018-04-12
  • 打赏
  • 举报
回复
引用 6 楼 lyhoo163 的回复:
建议你,使用另一个ADO控件查询,就可以了。二者之间不干涉。如query2或query3
我是用的另一个QUERY2,奇怪为什么有问题。
xiaocongzhi 2018-04-11
  • 打赏
  • 举报
回复
SELECT TOP 1 XXX FROM XXX ORDER BY XX DESC
lyhoo163 2018-04-11
  • 打赏
  • 举报
回复
S:='1000-1-1'; // 你的日期格式
lyhoo163 2018-04-11
  • 打赏
  • 举报
回复
你还可以,通过循环已查询的(现有的)query1数据集,找到最近日期。
procedure TMDI_1_Frm.Button11Click(Sender: TObject);
var S:String;
begin
  S:='2011-01-01 00:00';    // 时间格式
  with query1 do
  begin
    First;
    while not Eof do
    begin
      if FieldByName('日期').asString>S
        then S:=FieldByName('日期').asString;
      Next;
    end;
  end;
end;
代码仅供参考。
lyhoo163 2018-04-11
  • 打赏
  • 举报
回复
建议你,使用另一个ADO控件查询,就可以了。二者之间不干涉。如query2或query3
lyhoo163 2018-04-11
  • 打赏
  • 举报
回复
日期格式,最好使用yyyy-MM-dd 即'2018-01-01' 这样,即使是字符比较大小,也准确。
sixgj 2018-04-10
  • 打赏
  • 举报
回复
引用 4 楼 lyhoo163 的回复:
通过SQL语句,日期排序(反序),选择第一条。 Select TOP 1 FROM 表名 Order By DateTime DESC 这样数据集中,就有一条日期最近的数据,读取DateTime值,就是最近的日期值了。
TO hyhoo163 关键是前面已经有一条语句对该表进行操作,现在再对其操作会出错。两个查询间关闭也不行. 如: query1.sql.add (Select * FROM 表名 ) query1.open; .............. query1.close; ............... query2.sql.add(Select TOP 1 FROM 表名 Order By DateTime DESC )
lyhoo163 2018-04-03
  • 打赏
  • 举报
回复
通过SQL语句,日期排序(反序),选择第一条。 Select TOP 1 FROM 表名 Order By DateTime DESC 这样数据集中,就有一条日期最近的数据,读取DateTime值,就是最近的日期值了。
  • 打赏
  • 举报
回复
select max(datetime) as xxx from ... where ... 依据datetime的类型,可能需要cast
秋天之落叶 2018-04-02
  • 打赏
  • 举报
回复
楼主还有一个条件是 where CODE=1 借宝地问一下:假如数据量很大,是MAX计算最大值速度快呢?还是DESC排序速度快呢?
doloopcn 2018-04-02
  • 打赏
  • 举报
回复
Select TOP 1 From YourTable Order By DateTimeField DESC

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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