如何比较日期字符串大小。(50分)

  • 主题发起人 主题发起人 vpt
  • 开始时间 开始时间
V

vpt

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个SQL Server数据库,
里面有个字段是T,是varchar属性,用来记录时间,如 2002-12-23 09:17:56
我现在要写一个查询的程序,用Query控件,要显示两个时间段(有用户输入)之间的记录。
我应该如何把这几个字符串做比较。
 
直接比较
'0' 比 '1' 小
如果是TDateTime那也是
 
既然是记录时间的,你为什么不用Datetime类型?
奇怪!!!!!!!!!
 
SELECT * FROM T_Table
WHERE ( CAST(T AS DATETIME) >= '起始时间')AND(CAST(T AS DATETIME) <= '终止时间')
 
假设时间段在T1-T2
那你就可以这样:select * from xx where t>T1 and t<T2
 
呵呵~简单:
-----------------------------
比如:
时间段:time1,time2:Tdatetime;
要查询在时间段内的数据。
with Query do
begin
Close;
SQL.Add('select *');
SQL.Add('from table1'); //表名为table1
SQL.Add('where (T >= :timebegin) and (T <= :timeend)');
ParamByName('timebegin').Value:=FormatDateTime("yyyy-mm-dd hh:mm:ss",time1);
ParamByName('timeend').Value:=FormatDateTime("yyyy-mm-dd hh:mm:ss",time2);
Open;
end;
-----------------------------
测试通过,给分!
如果还不懂,可以把问题发到我email来! redleilei@sina.com



 
两个日期直接相减就可以了。
 
T是varchar型,不是DateTime型。
 
哈哈
我看你是设计数据库字段的时候就设计出错了。
为了方便吧,到用到时间比较的时候没折了吧,我看你还是改字段的类型,不然你是没办法了。
 
我的方法是对的,我测试的就是 Vchar型
 
我建议你最好是再建一个字段把日期和时间保存为
“20021223091756”格式,比较起来也好比较,如
果一定要显示2002-12-23 09:17:56的话,那就让两
个字段并存

获取20021223091756可以用FormatDateTime('yyyymmddhhmmss',XXXX.datatime);
 
真是怪,字符串也可以比较大小,不知道会不会出问题!
 
绝对可以,不过你要保证年月日时分秒必须是一样的长度,
比如 年为4位,
月为2位,
日为2位,
时为2位,
分为2位,
秒为2位。
肯定可以比较。
 

Similar threads

回复
0
查看
1K
不得闲
回复
0
查看
862
不得闲
S
回复
0
查看
694
SUNSTONE的Delphi笔记
S
S
回复
0
查看
655
SUNSTONE的Delphi笔记
S
后退
顶部