我的写法是这样的,但是运行时报错,应该怎样写呢?
SELECT *
FROM tbLeaveRec
WHERE AND (BeginData <= 2003 - 4 - 14) AND
(EndData>= 2003 - 4 - 14)
SELECT *
FROM tbLeaveRec
WHERE AND (BeginData <= 2003 - 4 - 14) AND
(EndData>= 2003 - 4 - 14)
这样应该会没问题了
再连接sql。可以用formatdatetime(‘yyyy-mm-dd’,date)
select * from table where begindate>='‘’2002-4-14‘’ and endDate<=‘’2002-4-18'‘
FROM tbLeaveRec
WHERE AND (BeginData <= '2003-04-14') AND
(EndData >= '2003-04-14')
SELECT *
FROM tbLeaveRec
WHERE AND (BeginData <= "2003 - 4 - 14") AND
(EndData>= "2003 - 4 - 14")
1.可能的错误“EndData"?还是"EndDate"?
2.字串嘛?要用“”的嘛!
这样写还不一样能查询到数据。建议将BEGINDATE,ENDDATE改为DATE/DATETIME,具体看用什么数据库
比如Oracle:
SELECT *
FROM tbLeaveRec
WHERE AND (BeginDate <= To_Date("2003 - 4 - 14")) AND
(EndDate >= To_Date("2003 - 4 - 14"))
如果日期字段是Date型的,用BeginDate<=To_Date('2000-04-14','YYYY-MM-DD'),即将字符串转化为日期型的就可以比较了。
只有一个DATATIME类型的字段,包括了时间,很不好操作,
所以我就想用CHAT型的来操作
SELECT *
FROM tbLeaveRec
WHERE AND (BeginData <=:pBdate ) AND
(EndData>=:pEdate)
with aq.Parameters do begin
paramByName('PBdate').value:=strtodate('2000-04-14');
paramByName('PEdate').Value:=strtodate('2000-04-14');
End;试试吧。
如果有问题再找我。
我一定帮你解决!