关于SQL SERV 日期比较的问题(20)

  • 主题发起人 主题发起人 royhgf
  • 开始时间 开始时间
R

royhgf

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL SERV 日期比较问题,select * from Ts where 接收日期 > SData 。这样为什么不行的。应该怎么写? SData : Tdate;
 
是不是在DELPHI里用的,那就转换成STRING
 
QUERY1.Close;QUERY1.SQL.TEXT:=Format('Select * From ts where 接收日期 > ''%s'' ', [DateToStr(SDate)]);QUERY1.Open;
 
我的接收日期也是smalldatatime 类型的啊
 
QUERY1.Close;QUERY1.SQL.TEXT:=Format('Select * From ts where 接收日期 > ''%s'' ', [DateToStr(SDate)]);QUERY1.Open; 这个不行啊,我的接收日期也是smalldatatime 类型的啊
 
轉換成字符類型,也就是二樓說的
 
两个都是日期类型,两个都转换成字符类型吗?怎样转?
 
我测试了,smalldatetime的,通过我那种方式可以的,是不是你的字段里面除了日期,还包含时间?假如真那样的话,测试下面SQLQUERY1.Close;QUERY1.SQL.TEXT:=Format('Select * From ts where 接收日期 >= ''%s'' and 接收日期<''%s'' ', [DateToStr(SDate),DateToStr(SDate+1) ]);QUERY1.Open;
 
SQL语句本身就是个字符串。
 
znxia,我的日期字段里面只有日期,如2008-8-8,我学你这样写可以以编译,但执行出错啊DMZfj.ClientDataSetTs.CommandText:='Select * From ts where 接收日期 > ''%s'',[DateToStr(FormMain.SDate)]';
 
ClientDataSetTs.CommandText:= Format( 'Select * From ts where 接收日期 > ''%s'' ',[DateToStr(FormMain.SDate)]); 楼主,你抄错了。或者ClientDataSetTs.CommandText:= Format( 'Select * From ts where 接收日期 > ''%s'' ',[ formatdatetime('YYYY-MM-DD',date) ]); 另外,请确保你计算机控制面板中的 区域和语言选项 中,日期格式为 yyyy-MM-dd 格式。
 
要进行类型转换,在Delphi中的SQL写法和在SQL Server中的写法不同。
 
来自:znxia, 时间:2009-3-4 12:46:53, ID:3946800ClientDataSetTs.CommandText:= Format( 'Select * From ts where 接收日期 > ''%s'' ',[DateToStr(FormMain.SDate)]); 楼主,你抄错了。我按照你这样写,但编译出错,提示Undeclared identifier:'SData';但FormMain.SDate在SQL外是可以用的
 
你这样写就可以啦'Select * From ts where convert(char(10),接收日期,25)>='+quotedstr(formatdatetime('yyyy-mm-dd',sdate));你把两个日期转换成一个格式来比较就可以啦
 
Undeclared identifier:'SData' :这种错误你还要问我们是什么原因导致的啊?
 
我复制过去以为没有问题,原来写错啦,谢谢啦
 
后退
顶部