在sql语句中使用函数的问题(100分)

  • 主题发起人 主题发起人 wuzhongl
  • 开始时间 开始时间
W

wuzhongl

Unregistered / Unconfirmed
GUEST, unregistred user!
用ADOQuery编写一个查询记录的例子,其sql语句设置为 'SELECT * FROM MyTable where DayOfTheMonth(SkRq)=word(2)'
其中SkRq是数据库表中的一个日期字段,该SQL语句的作用是要选取表中Skrq字段中月份等于2月的记录,但在运行中却出现错误,说表达式中函数DayOfTheMonth没有定义,这是什么原因?
我在Uses语句中是加了DateUtils单元的。
 
SQL里用:
SELECT * FROM MyTable where Month(SkRq)='2'
 
ELECT * FROM MyTable where Month(SkRq)=2
 
SELECT * FROM tablename WHERE MONTH(SKQR) ='2'
 
DateUtils单元中根本没有定义DayofMonth()
如在accesss数据库里sql语句可以这样写
sql='SELECT * FROM MyTable where day(SkRq)=''2'''
 
sqlserver里边可以这样写:
select * from MyTable where DATEPART(DD,SkRq)=2
应该可以,你试试![:)]
 
更正上面:
sqlserver里边可以这样写:
select * from MyTable where DATEPART(MM,SkRq)=2
应该可以,你试试![:)]
 
你传的这个串是提交给数据库服务器执行的,
所以所用的函数只能是sql server的函数,
不能是delphi函数

这是一个正确的观念问题,
和正确的结果无关,
 
To raingirl: ADO里也行, VBA里有个DatePart函数;
select * from MyTable where DATEPART([red]"MM"[/red],SkRq)=2
同意dhl2001!!
 
DayOfTheMonth不是SQL中的日期转换函数,
在SQL中好像是Month(DataTime)
 
注意DayOfTheMonth是Delphi中的函數,
在純sql語句中只能用當前數據庫支持的函數。
 
难道问这个问题的结果是想要一个delphi 函数不成?我不就是拿个具体的说一下(sql server),ADO什么的最终也是要与数据库链接起来,这些sql语句也不能单独执行吧(假设没有数据库!))
 
后退
顶部