btcq.net
当前位置:首页 >> DElphi中日期字段如何作为sql语句的条件 >>

DElphi中日期字段如何作为sql语句的条件

如果是针对SqlServer数据库,一般在Sql语句中直接把日期用单引号引起来就可以了.FindSql:='Select * From zy_sf Where ' +' 结帐日期>='+''''+DateToStr(Dtp_SDate.Date)+'''' +' and 结帐日期='+'#'+DateToStr(Dtp_SDate.Date)+'#' +' and 结帐日期 评论0 3 0

adoquery1.SQL.Add('select * from zyqd where 职员姓名=:zyxm and 签到日期 between cong and dao');这句话改成: adoquery1.SQL.Add('select * from zyqd where 职员姓名=:zyxm and 签到日期 between :cong and :dao');也就是多加了两个冒号,冒号表示他们是参数.

在sql server中: select * from yourtable where year(yourdatefield)='2002' and month(yourdatefield)='5'

delphi中直接用字符串可以表示日期最标准的日期用ss=formatdatetime('yyyy-mm-dd',date)类似情势获得然后把前提用ss代替

我的解决办法是获得日期后,用find_date:=formatdatetime('yyyy-mm-dd',edit1.text)然后SQL用 select * from talbe_name where your_date>find_date

直接在SQL语句中给出时间限制不妥,因为每一种数据库对时间查询的格式要求不同,Paradox是mm/dd/yyyy格式,Access是#yyyy-mm-dd#格式,SQL Server是yyyy-mm-dd格式,等等,因此像 chechy(chechy) 将时间用为参数比较好!

'select * from report where to_char(date,'YYYYMMDD')='''+Adate+'''';'select * from report where date=to_date('''+Adate+ ''',''YYYYMMDD'')'

类似于:''''+FormatDateTime('yyyy-mm-dd', Now)+''''格式要数据库能识别的

我有两个方法你可以试一下:1 用这个adoQuery.Parameters.ParamValues NULL; 也许是一样的,呵呵2 最彻底的方法是动态构建那个adoQuery 里的SQL语句,如果日期字段为空,则不写这个日期字段,或者在SQL里就把它赋为NULL.我自己一般的写法都不会用Parameters这个参数,感觉不是很好用,不如动态生成SQL来得方便,当然,如果要用到Blob字段,那就非用不可了(把BLOB字段生成文本而构建SQL语句,ADO会报错,BDE不会)

我的语句是select * from member where 日期<后面是一个具体的日期,毕竟怎么写啊?我试过"2001-01-01"和"01/01/01"都不可!我用的是VFoxpro自由表.

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.btcq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com