sql的问题,select * from table where date1>=''01-10-10'' 到底行不行的(10分)

  • 主题发起人 主题发起人 hymen1
  • 开始时间 开始时间
H

hymen1

Unregistered / Unconfirmed
GUEST, unregistred user!
sql的问题,select * from table where date1>=''01-10-10'' 到底行不行的
 
好象不行的!!
 
看在什么操作系统上。
在Oracle上最好使用to_Date进行转换。否则和oracle设置有关。
 
date1是日期型就可以,可以只用单引号
 
没写完,补充。
在SQL Server上上面的话就可以。
 
最好是这样
 select * from table where date1>=''2001-10-10''
在SQL SERVER 上的话
 
(1)用给参数赋值的方式如

query1.sql.add('select * from tablename where regdate>:lastdate');
query1.parambyname('lastdate').asdatetime:=strtodate('2001-01-01');
query1.open;
(2)只适用于ACCESS
sql:='SELECT * FROM tablename WHERE time_in>=#'+formatdatetime('yyyy/mm/dd',sdt - 1)+'# '
+' AND time_out<=#'+formatdatetime('yyyy/mm/dd',edt + 1)+'# ';

(3)
在sql语句中给日期型赋值
用引号把转换成字符串的时间引起来。如
fieldname:='''+formatdatetime()+''''
 
可以使用参数查询,如:
query1.sql.add('select * from table where date1>:p1');
query1.parambyname('p1').asstring:='2001-01-01';
query1.prepare;
query1.open;
 
好像不行,小弟在SQl2000上执行时报语法错误!
在SQL语句中,单引号('')被用来标识字符串,如在字符串中又出现了单引号,刚sql会报错,
因为系统无法确定字符串的定界符到底是哪一个,学Asp的都知道,在表单数据进库前应替换
掉字符串中的单引号,如果不替换,则在前端就应用JavaScript或VBScript将单引号禁止!
 
这与你使用的数据库以及数据库的驱动有关系。如同样是DBF文件,用BDE数据库引擎和ODBC
方式就不一样。
 
为什么有很多问题都问数据库里的日期字段的处理,为什么不把他设置为字符串形式那样不
就简单多了吗?
 
各位大大,用参数无疑是可以的,如果直接输入日期性的数据,结果又有很大的区别?

大家讨论讨论一下阿
 
我的想法就是用delphi +bde

用query 编写语句,但不能用参数,不知道各位有什么好的方法。

我试过大家的方法好象也是出现错误的。
 
??
大家快来讨论讨论阿!!

急!
 
select * from table where date1>='01-10-10'
在SQL Server中这条语句是可以正确执行的
 
在bde中好象行不同野,有没有别的办法呢!
 
select * from table where date1>=2001-10-10
 
他说类型不匹配。[:(][:(][:(][:(]
 
我在sql server 7.0 中是可以执行,可能跟系统日期设置有关.
 
Oracle可以~~
SQL Server不行,这种格式才行 '月/日/年'
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
后退
顶部