一时间查询问题! ( 积分: 100 )

  • 主题发起人 主题发起人 empty023
  • 开始时间 开始时间
E

empty023

Unregistered / Unconfirmed
GUEST, unregistred user!
查询两个DateTimePicker之间的数据,我是这样写的:
select t_d_cs_運單資料.*,tab_現金收款記錄表.實收金額 as 收款金額,tab_現金收款記錄表.實收幣別 as 收款幣別 from t_d_cs_運單資料 LEFT OUTER JOIN tab_現金收款記錄表 on t_d_cs_運單資料.運單編號 = tab_現金收款記錄表.運單編號 where t_d_cs_運單資料.寄件日期 >= to_date('''+Formatdatetime('yyyy-mm-dd', DateTimePicker1.Date)+''',''yyyy-mm-dd'') and t_d_cs_運單資料.寄件日期 <= to_date('''+Formatdatetime('yyyy-mm-dd', DateTimePicker2.Date)+''',''yyyy-mm-dd'');
比如我现在在 DateTimePicker选择从11号到15号的数据,但查出来的只有11号到14号的..15号会有部分数据,但不全..为什么?
 
因为时间的原因.你应该从11号0点,到16号0点,这样就刚好可以覆盖你要的时间段 .
 
你原先写进表的记录已经带有时间段了,可能用了TDateTimePicker控件,里面的Time属性没有清为0:00:00,所以表里的记录已经有时间了,建议改后 重新录入些数据测试。
 
沒有精確到秒的話,就會是2007-6-11 00:00:00
 
TDateTimePicker控件,里面的Time属性可能没有清为0:00:00
 
TDateTimePicker 我试过 Time 属性不能清为0:00:00 说是不正常时间格式..它的格式和windows时间格式一致, 就是上午 12:00:00 下午 12:00:00 但还是不能解决我的问题.
 
来自:empty023, 时间:2007-6-11 15:17:40, ID:3796737
TDateTimePicker 我试过 Time 属性不能清为0:00:00 说是不正常时间格式..它的格式和windows时间格式一致, 就是上午 12:00:00 下午 12:00:00 但还是不能解决我的问题.


删除 清空就行,EXIT的时候就自己变成0:00:00
 
删除 清空就行,EXIT的时候就自己变成0:00:00
我删除后 EXIT 时间变成的是 上午 12:00:00 程序运行后还是最后一天的数据不能显示
 
where to_date(t_d_cs_運單資料.寄件日期) >= to_date
 
来自:empty023, 时间:2007-6-11 15:33:31, ID:3796756
删除 清空就行,EXIT的时候就自己变成0:00:00
我删除后 EXIT 时间变成的是 上午 12:00:00 程序运行后还是最后一天的数据不能显示

你原来录入的数据已经是带时间了啊,所以你还是查询不到,要去掉原来录入的那些数据的时间部分啊。
 
where to_date(t_d_cs_運單資料.寄件日期) >= to_date
用这个,程序会死掉
 
可能用了TDateTimePicker控件,里面的Time属性没有 设为00:00:00,所以表里的记录已经有时间了,或取时间转为串的前十位
 
表里面的记录确实有时间,那要怎样正确查询出这些有时间的记录?
 
如果想留下时间,那还用说吗?

肯定是后面的日期+1,'<=' 改成 '<'
 
用datediff函数
 
'select t_d_cs_運單資料.*,tab_現金收款記錄表.實收金額 as 收款金額,tab_現金收款記錄表.實收幣別 as 收款幣別
from t_d_cs_運單資料 LEFT OUTER JOIN tab_現金收款記錄表 on t_d_cs_運單資料.運單編號 = tab_現金收款記錄表.運單編號
where convert(char(8),t_d_cs_運單資料.寄件日期,112) >= '''+Formatdatetime('yyyymmdd', DateTimePicker1.Date)+'''
and convert(char(8),t_d_cs_運單資料.寄件日期,112)<= '''+Formatdatetime('yyyymmdd', DateTimePicker2.Date)+''''
或者
'select t_d_cs_運單資料.*,tab_現金收款記錄表.實收金額 as 收款金額,tab_現金收款記錄表.實收幣別 as 收款幣別
from t_d_cs_運單資料 LEFT OUTER JOIN tab_現金收款記錄表 on t_d_cs_運單資料.運單編號 = tab_現金收款記錄表.運單編號
where t_d_cs_運單資料.寄件日期 >= '+Formatdatetime('yyyy-mm-dd', DateTimePicker1.Date)+' 00:00:00.000
and t_d_cs_運單資料.寄件日期 <= '+Formatdatetime('yyyy-mm-dd', DateTimePicker2.Date)+' 23:59:59.999'
 
where convert(char(8),t_d_cs_運單資料.寄件日期,112) >= '''+Formatdatetime('yyyymmdd', DateTimePicker1.Date)+'''
and convert(char(8),t_d_cs_運單資料.寄件日期,112)<= '''+Formatdatetime('yyyymmdd', DateTimePicker2.Date)+''''
这个效率太低,并且无法使用索引
 
已经解决了,散分!!
 
多人接受答案了。
 
后退
顶部