MSSQL70中表字段,如下
表(mytable)
Sale(char 15) saletime(char 10)
delphibook 2005-3-6
vcbook 2005-3-6
vbbook 2005-2-5
...
因为其他需要,saletime只能用char类型,请问我现在
要比较两个时间的大小用SQL语句该怎么写?比如我要查询大于某个日期的购买记录:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.add('select * from mytable where saletime<:sale_time');
ADOQuery1.Parameters.ParamValues['sale_time']:= edit1.text;
ADOQuery1.ExecSQL ;
但是saletime不是datetime型的,这样比较肯定会有问题吧
表(mytable)
Sale(char 15) saletime(char 10)
delphibook 2005-3-6
vcbook 2005-3-6
vbbook 2005-2-5
...
因为其他需要,saletime只能用char类型,请问我现在
要比较两个时间的大小用SQL语句该怎么写?比如我要查询大于某个日期的购买记录:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.add('select * from mytable where saletime<:sale_time');
ADOQuery1.Parameters.ParamValues['sale_time']:= edit1.text;
ADOQuery1.ExecSQL ;
但是saletime不是datetime型的,这样比较肯定会有问题吧
'select * from mytable where CONVERT(smalldatetime,saletime)<:sale_time' //短日期
另一种方法,用Cast转换类型:
'select * from mytable where Cast(saletime as datetime)<:sale_time'