如何在 Delphi 7 上使用日期时间选择器
how to use datetimepicker on Delphi 7
如何使用 TDateTimePicker
时间格式(时:分:秒)?
我试过这段代码:
Sql.text:= ('select * from namatabel where namafield between '+quotedstr(formatdatetime('yyyy/mm/dd', datetimepicker1.date))+' and '+quotedstr(formatdatetime('yyyy/mm/dd', datetimepicker2.date))+' and field order by field ASC');
还有这个代码:
Sql.text:= ('select * from tablename where fieldname between '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker1.date))+' and '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker2.date))+' and fieldname order by fieldname ASC');
还有这个代码:
Sql.text:= ('select * from tablename where fieldname between '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker1.datetime))+' and '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker2.datetime))+' and fieldname order by fieldname ASC');
但是那些不起作用,帮我改正它们。
我正在对 MySQL 数据库使用 SQLYog。
更新
@Jens Borrisholt 我以前试过这段代码,但它也不起作用
SQL.Add('SELECT meteran.kd_meter as no,kamar.nama,meteran.waktu,meteran.meter '+
'FROM meteran,kamar WHERE kamar.idkamar = meteran.idkamar AND meteran.waktu BETWEEN :tgl1 and :tgl2 and waktu group by waktu asc');
ParamByName('tgl1').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime);
ParamByName('tgl2').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker2.DateTime); end;
DBGrid2.DataSource.DataSet:=MyQuery2;
您的查询有误
- 字段名太多了
用数据缩短
不行
Sql.text:= 'select * from tablename where fieldname between "2006-06-11"'+
'and "2006-06-19" and fieldname order by fieldname ASC';
好的
Sql.text:= 'select * from tablename where fieldname between "2006-06-11" '+
'and "2006-06-19" order by fieldname ASC';
示例有效 SQL 数据
select * from auktionen where auktionende between '2006-06-11' and '2006-06-19' order by auktionende ASC;
全部连同您的代码。没有 和 waktu
BETWEEN :tgl1 and :tgl2 and waktu
MyQuery2.Close;
MyQuery2.SQL.Text := 'SELECT meteran.kd_meter as no,kamar.nama,meteran.waktu,meteran.meter '+
'FROM meteran,kamar WHERE kamar.idkamar = meteran.idkamar'+
' AND meteran.waktu BETWEEN :tgl1 and :tgl2'+
' group by waktu';
MyQuery2.ParamByName('tgl1').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
MyQuery2.ParamByName('tgl2').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker2.Date);
DBGrid2.DataSource := DataSource1;
MyQuery2.Open;
我不确定你的具体情况requirement.ill尽力帮助你。
I)如果您想将日期时间选择器的 date 与 table 中 datetime 字段的 date 进行比较,
SQL.Add(格式('select * from tablename where cast ([my_date_time_var] as date) between %s and %s ' ,[Quotedstr(FormatDateTime('MM/DD/YYYY',(datepicker1.Date))),Quotedstr(FormatDateTime('MM/DD/YYYY', (datepicker2.Date)))]))
II)如果你想比较日期时间选择器的日期时间和[=57]中日期时间字段的日期时间 =],
SQL.Add(格式('select * from tablename where my_date_time_var between %s and %s ' ,[Quotedstr(FormatDateTime('MM/DD/YYYY HH:MM:SS',(datepicker1.DateTime))),Quotedstr(FormatDateTime('MM/DD/YYYY HH:MM:SS' ,(datepicker2.Date时间)))]));
III)如果您想比较日期时间选择器的 time 与 table 中日期时间字段的 time,
SQL.Add(格式('select * from tablename where cast ([my_date_time_var] as time) between %s and %s ' ,[Quotedstr(FormatDateTime('HH:MM:SS',(datepicker1.time))),Quotedstr(FormatDateTime('HH:MM:SS', (datepicker2.Time)))]))
如果您的要求不一样,请告诉我
如何使用 TDateTimePicker
时间格式(时:分:秒)?
我试过这段代码:
Sql.text:= ('select * from namatabel where namafield between '+quotedstr(formatdatetime('yyyy/mm/dd', datetimepicker1.date))+' and '+quotedstr(formatdatetime('yyyy/mm/dd', datetimepicker2.date))+' and field order by field ASC');
还有这个代码:
Sql.text:= ('select * from tablename where fieldname between '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker1.date))+' and '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker2.date))+' and fieldname order by fieldname ASC');
还有这个代码:
Sql.text:= ('select * from tablename where fieldname between '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker1.datetime))+' and '+quotedstr(formatdatetime('yyyy/mm/dd hh:mm:ss', datetimepicker2.datetime))+' and fieldname order by fieldname ASC');
但是那些不起作用,帮我改正它们。
我正在对 MySQL 数据库使用 SQLYog。
更新
@Jens Borrisholt 我以前试过这段代码,但它也不起作用
SQL.Add('SELECT meteran.kd_meter as no,kamar.nama,meteran.waktu,meteran.meter '+
'FROM meteran,kamar WHERE kamar.idkamar = meteran.idkamar AND meteran.waktu BETWEEN :tgl1 and :tgl2 and waktu group by waktu asc');
ParamByName('tgl1').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime);
ParamByName('tgl2').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker2.DateTime); end;
DBGrid2.DataSource.DataSet:=MyQuery2;
您的查询有误
- 字段名太多了
用数据缩短
不行
Sql.text:= 'select * from tablename where fieldname between "2006-06-11"'+
'and "2006-06-19" and fieldname order by fieldname ASC';
好的
Sql.text:= 'select * from tablename where fieldname between "2006-06-11" '+
'and "2006-06-19" order by fieldname ASC';
示例有效 SQL 数据
select * from auktionen where auktionende between '2006-06-11' and '2006-06-19' order by auktionende ASC;
全部连同您的代码。没有 和 waktu
BETWEEN :tgl1 and :tgl2 and waktu
MyQuery2.Close;
MyQuery2.SQL.Text := 'SELECT meteran.kd_meter as no,kamar.nama,meteran.waktu,meteran.meter '+
'FROM meteran,kamar WHERE kamar.idkamar = meteran.idkamar'+
' AND meteran.waktu BETWEEN :tgl1 and :tgl2'+
' group by waktu';
MyQuery2.ParamByName('tgl1').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
MyQuery2.ParamByName('tgl2').AsString:=FormatDateTime('yyyy-mm-dd',DateTimePicker2.Date);
DBGrid2.DataSource := DataSource1;
MyQuery2.Open;
我不确定你的具体情况requirement.ill尽力帮助你。
I)如果您想将日期时间选择器的 date 与 table 中 datetime 字段的 date 进行比较,
SQL.Add(格式('select * from tablename where cast ([my_date_time_var] as date) between %s and %s ' ,[Quotedstr(FormatDateTime('MM/DD/YYYY',(datepicker1.Date))),Quotedstr(FormatDateTime('MM/DD/YYYY', (datepicker2.Date)))]))
II)如果你想比较日期时间选择器的日期时间和[=57]中日期时间字段的日期时间 =],
SQL.Add(格式('select * from tablename where my_date_time_var between %s and %s ' ,[Quotedstr(FormatDateTime('MM/DD/YYYY HH:MM:SS',(datepicker1.DateTime))),Quotedstr(FormatDateTime('MM/DD/YYYY HH:MM:SS' ,(datepicker2.Date时间)))]));
III)如果您想比较日期时间选择器的 time 与 table 中日期时间字段的 time,
SQL.Add(格式('select * from tablename where cast ([my_date_time_var] as time) between %s and %s ' ,[Quotedstr(FormatDateTime('HH:MM:SS',(datepicker1.time))),Quotedstr(FormatDateTime('HH:MM:SS', (datepicker2.Time)))]))
如果您的要求不一样,请告诉我