paradox+日期--->想要某月的记录......(100分)

J

junzn

Unregistered / Unconfirmed
GUEST, unregistred user!
我来提一个问T,同志们能否轻轻而易举的给予回答?
1.用sql语句操作paradox;
2.表中有日期型字段;
3.我只想把5月份的记录取出来!
4.sqlserver中似乎可以用month...等函数实现.
5. paradox如何做?????????????????????????????
 
用 BDE 的话可以使用 Local SQL,不过只是SQL92的子集,功能有限,但已能满足一般使用。
对第三个问题不能按大于4月小于6月的范围来选取吗?
 
你的意思是 : select 日期字段 from Table1
where (month(Fieldbyname(日期字段).asdatetime)>4)
and (month(Fieldbyname(日期字段).asdatetime)<6)
是吗?

paradox有这样的函数吗?
 
利用DecodeDate函数,例如你的数据库别名为hbworks,有一个数据表tblhbinfo2,
其中有一个TDate字段"settime",
var tmpYear,tmpMonth,tmpDay:word;
var tmpstrMonth:string;
begin
...
decodedate(tblhbinfo2.fieldbyname('settime').asdate,tmpYear,tmpMonth,tmpDay);
tmpstrMonth:=inttostr(tmpYear)+''+inttostr(tmpMonth)+'月';
...

end;
这样,不久可以了吗?!
*注意:Delphi认识的时间格式是'mm/dd/yyyy'。
 
这样子,假设 datafield 是日期字段
select *
from 'c:/tablename.db'
where datefield > '04/30/2001' and datefield < '06/01/2001'
 
bbkxjy同学的意见有以下几个问题:
1.加入欲取出的月份位"n",那么前一个月和后一个月都有可能是28,29,30,31天,
是否需要先判断一下?(还要考虑"润月"的问题)
2.而且, 还要考虑如果是1月,12月,则不能简单的巴月份加一或者减一,
3.可能还有其它的问题......

xsslh同学的意见似乎不错,but:
1.现在地问题是要用sql来实现啊,decodedate在sql中能直接试用吗?
2.tblhbinfo2.fieldbyname('settime').asdate的值在执行之前还没有得到, 也就是说,
Qeury1中目前还没有记录呢, 何来对于日期字段的各种操作?
总而言之, 有何绝妙的法办呢?
 
我再把问题说得精彩一点:
如何将所有员工生日的月份是5的记录全部取出来?
 
select * from table1 where extract(month from datafield)=5
 
ygq 的方法是对的,其实这些都可以在帮助中的 "Local SQL Guide" 中找到的。
 
1)同意楼上
2)也可以就用bbkxjy任意日期段的形式条件,但要先把日期形式转换成JDate格式
 
ygq 的方法是对的。

SELECT DOB, LastName, FirstName

FROM People

WHERE (EXTRACT(MONTH FROM DOB) = 5)
 
1.问题非常圆满的出色地解决!
2.感谢ygq等同志的超级智慧!!
3.分数全部奉献给ygq!!!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
919
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
I
回复
0
查看
721
import
I
顶部