我用的是sql数据库,其中有一个字段设的是datetime,默认值为getdate(),我想用datetimepicker控件选取日期来选择数据库的数据,怎么办

  • 主题发起人 主题发起人 wanglong10
  • 开始时间 开始时间
W

wanglong10

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是sql数据库,其中有一个字段设的是datetime,默认值为getdate(),我想用datetimepicker控件选取日期来选择数据库的数据,怎么办啊?请大侠帮忙啊! (100分)<br />我用的是sql数据库,其中有一个字段设的是datatime,默认值为getdate(),我想用datetimepicker选取日期来选择数据库的数据,怎么办啊?请大侠帮忙啊!
var
sql:string;
begin
sql:=format('select * from test where datetime="%s"',[datetimepicker1.text];
query1.close;
query1.sql.clear;
query1.sql.add(sql);
query1.open;
我估计大概是这个意思,大侠给改改吧!
 
table.fieldbyname('datetime').asdatetime:=datetimepicker.date;
很长时间不用这个控件了,
建议到www.51delphi.com下一个ehlib2.1
有一个可以直接和数据库联接的datetimepicker

 
parambyname('Ddatetime').asdatetime:=datetimepicker.date
 
datetimepicker有text属性吗?我怎么没找到?
 
可是,datetime得到的数据是02-3-13 11:20:54,datatimepicker只能选择02-3-13,我想看02-3-13
入库的数据,parambyname('Ddatetime').asdatetime:=datetimepicker.date一条也没有啊!
 
建議:
var
sql:string;
begin
ShortDateFormat:='yyyy-mm-dd';
DateSeparator:='-';
sql:=format('select * from test where datetime=''%s''',[formatdatetime('yyyy-mm-dd',datetimepicker1.datetime)];
//注意:%s左邊為2個單引號,右邊為3個單引號
query1.close;
query1.sql.clear;
query1.sql.add(sql);
query1.open;

 
with query1 do
begin
close;
sql.clear;
sql.add('select * from test where dd=:dd');
params[0].asdate:=datetimepicker1.date;
prepare;
open;
end;
在控制面板的区域设置中日期短日期样式设为"yyyy-mm-dd"
 
建议:在数据库中添加两个INT 字段
1。iDate 取系统日期
2。iTime 去系统时间

这样想怎么找就怎么找
 
楼上三位的意见应该是可行的吧!
 
我试了,不好使!
 
1、 用 convert(datetime,convert(char(10),getdate(),101),101) 去掉时间
parambyname('Ddatetime').asdatetime:=datetimepicker.date
'select * from test where convert(datetime,convert(char(10),getdate(),101),101)
= :DDatetime

2、如需精确到时间,用2个datetimepicker
 
sql字符串这样写就ok了:
Sql:='select * from test where datetime=#'
+formatDateTime('yyyy-mm-dd',datetimepicker1.date)+'#';
 
将atetimepicker的kind设置为dtkDate
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部