三层查询中组合条件的查询问题(50分)

  • 主题发起人 主题发起人 myneptune
  • 开始时间 开始时间
M

myneptune

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:
我在开发过程中遇到一个问题:我在客户端用ClientDataSet,服务端用DataSetProvider。在做查询时在客户端用ClientDataSet的CommandText发送SQL语句,然后返回结果。现在我想在查询条件中添加今天的日期,并且希望服务器能够提供日期,因为毕竟客户机的日期不一定都正确(我单位有200台客户机)。那么是否可以在客户端发出一部分的SQL语句,到服务端后由服务端再加上今天的日期组成完整的SQL进行查询,然后返回结果??
或者各位有其他什么更好的方法?我现在在不知道的情况下用SOCKET控件来传递这个信息到客户端的,就是太麻烦了,体现不出三层的优点啊
 
1、你可以用select getdate()将数据库中的时间读出,然后同步到所有的客户端
缺点:因为查询传输的问题,同步后时间仍然有误差,如果时间要求不是太精确可以采用
2、从中间层的接口引一个方法,调用中间层的时间同步客户端
缺点:同上
3、不管客户端的时间,由中间层进行时间参数的置换,比如我们内定"chgdatetime“字符串是要替换的,那么在provider接受查询字符串时先搜索是否有这个字串,如有,用中间层的时间进行替换
缺点:麻烦,不具有通用性
4、不管客户端的时间,在所有使用时间的地方统一用数据库服务器的getdate()取数据库时间
缺点:如客户端使用不灵活
 
Select getdate()可以返回服務器的時間。
 
我的查询语句是在查询之前要生成的,而且在查询的时候要用到,对于时间的精确性倒是没有大的要求,只要获取当天的日期就可以了。我的程序是为了获取当天的工作计划,SQL语句中查询条件是当天的日期,所以希望在服务端能够提供当天的日期。例如,在客户端的SQL语句为:'select * from table where datetime = ',然后通过commandtext发送到服务器端,再进行如何处理,使语句完整成为:'select * from table where datetime = 2006-10-12 ',再由这个语句进行查询,最后将结果返回到客户端??
 
那就这样啊:
select * from table where convert(char(10),datetime,121)=convert(char(10),getdate(),121)
 
请问这句convert(char(10),datetime,121)=convert(char(10),getdate(),121)是什么意思
啊?是不是能够获取服务器的时间并且追加到SQL里啊?
 
getdate()就是取数据库服务器的时间,
convert是转换成'yyyy-mm-dd'格式字符串的。
 
成了,谢谢!
 
后退
顶部