起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 530|回复: 5

【搞定】时间日期的过滤 怎么写?**

[复制链接]
发表于 2007-1-27 15:07:45 | 显示全部楼层 |阅读模式
关于时间过滤查到的资料是这样写:包含时间的
'(rq >= ''' + DateToStr(DateTimePicker1.Date)+''''
      + ') and (rq < ''' + DateToStr(DateTimePicker1.Date+1)+''''+')';
      Inttostr(Dateutils.Yearof(date)

我用的是MSSQL数据库

现在的要求是:
数据表里是 日期时间字段 ZDA
但只要过滤出 X年的记录,
比如给定 '2006',表示要过滤出 在2006年的数据

或给定年/起止月,
比如 '2006' '01' '03' 表示要过滤2006年1月到3月的记

这些要如何写SqlFilter的过滤?

谢谢
回复

使用道具 举报

 楼主| 发表于 2007-1-28 19:12:38 | 显示全部楼层
顶下
回复 支持 反对

使用道具 举报

发表于 2007-1-29 09:03:19 | 显示全部楼层
SQLFilter是发往服务器端的过滤,可以使用参数
例如
DataSet.SQLFilter := '(rq >= :s) and (rq < :e)';
DataSet.Params.ParamByName('s').AsDateTime := ???;
DataSet.Params.ParamByName('e').AsDateTime := ???;
DataSet.Open;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-29 09:43:58 | 显示全部楼层
谢谢,不过还是有问题:

DataSet.SQLFilter := '(rq >= :s) and (rq < :e)';
比如,rq字段存的是完整的日期(年月日)
我要在Filter串中过滤出: rq的年份>2006  这个要怎么写? 数据库是mssql
回复 支持 反对

使用道具 举报

发表于 2007-1-29 14:54:31 | 显示全部楼层
请参考:

rq >= '2006-01-01 00:00:00'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-30 13:01:31 | 显示全部楼层
谢谢
貌似只能通过> 和 <来过滤某一年了

可以结帖了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-24 07:35 , Processed in 0.035270 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表