在SQL中,年龄表达问题! (50分)

  • 主题发起人 主题发起人 stone_syj
  • 开始时间 开始时间
1。有很数据库不支持直接的时间相间,建议您用当前的系统日期减去30得到日期X
select *
from
where birthday > x;
2。系统日期减去30年。您应该首先把日期分解为year,month,day,
year := year - 30;
再把year,month,day合成为日期x

3。DecodeDate() //分解日期
EncodeDate() //合成日期
用到两个函数,这两个系统函数,帮助里面有。

 
select birthday from table where birthday in (datediff(year,getdate,-30),datediff(year,getdate,-20))
 
大家都说了这么多了!我说什么呢!
看来你不太熟SQL,解释一下哦!SELECT后面是查询内容!from后面是要查询的数据表的名称!
where后面是查询条件啊!
可以吗?(最近好缺分用哦!)
 
大家好!!!!
真高兴有这么多人帮助我!让我觉得在一个大家庭中,真好!我还有很多不明白的地方,
比如在SQL语句里可以用那些函数,谁有这方面的资料,千万要告诉我呀!我的EMAIL地址是
iis2000@263.net!多谢多谢!
希望和大家共同进步!
 
to stone_syj:
SQL SERVER 6.5 的帮助文件里有这些资料,查一下吧
(在索引中用关键字“function”)
to 燕子:
year函数在SQL中是不能用,我搞错了
 
select count(*) from base
where extract(year from yearnow-birthday) between 1980 and 1970
或者
select count(*) from base
where extract(year from yearnow-birthday)<=1980 and extract(year from yearnow-birthday)>=1970
说明:
extract(year from 日期字段) 提取年份
extract(month from 日期字段) 提取月份
extract(day from 日期字段) 提取几号
还有interbase不支持extract
嘿嘿!刚用了200,赶快捞点回来:)
 
dbe的sql和sql server的sql语法不一样,别混了。
 
就是啊!所以我没说sql server的sql!
和和 我说的大多单机版的数据库都好用的.
 
多人接受答案了。
 
后退
顶部