请问这个SQL语句怎么写?

来源:百度知道 编辑:UC知道 时间:2024/05/05 09:07:03
我的数据库(access)有一个日期型字段名为"birthday",用来表示出生年月日。格式1900-01-01

现在我想实现复合查询,文本框里输入年龄X到Y之间 就能查出年龄在这个区间的相应的记录 文本框的命名分别为age1 age2

问题是SQL语句怎么写?

sql="SELECT * FROM jg WHERE "
If name<>"" Then sql=sql&" name="&name&" AND"
If sex<>"" Then sql=sql&" sex='"&sex&"' AND"
.
.
.
.

If age1<>""and age2<>"" Then sql=sql&" birthday between 下面该怎么写??

谢谢!

If age1<>""and age2<>"" Then sql=sql&" birthday between 下面该怎么写??

If age1<>""and age2<>"" Then sql=sql&" birthday between format(trim(age1.text),'yyyy-mm-dd') and format(trim(age2.text),'yyyy-mm-dd')

恩,需要取两个时间的交集!!
where birthday='" & age1 & "' or birthday='" & age2 & "' or (birthday>'" & age1 & "' and birthday<'" & age2 & "')

大体意思就是这样,先取出两端的时间,然后在加上两者之间的时间段,因为两者时间都符合查询的要求!!
试试!!

不要用between来写.用Access里面的函数
DateDiff()

select * from jg where
datediff('y',now,birthday)>age1 and datediff('y',now,birthday)<age1

关于函数的解释为:

===========================
DateDiff 函数

返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
语法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateD