当前位置:首页 » 编程语言 » sql回答年龄
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql回答年龄

发布时间: 2022-05-07 03:13:34

sql计算年龄

当然报错了
因为你没有制定查询条件,
现在写的语句select查询出Sales.Decile表中所有记录,而你的update是等于(意思更新一条记录),所以报错了,应该指定where条件

⑵ 如何用SQL语句把出生日期计算年龄,比如是1984-2-16怎么算出年龄啊

语句为:SELECT FLOOR(DATEDIFF(CURRENT_DATE,'1984-2-16')/356)

常用sql对数据库操作:

  1. 连接数据库命令:mysql -u root -p密码

  2. 创建数据库:create database dbname;

  3. 查看所有的数据库:show databases;

  4. 删除数据库:drop database dbname;

  5. 切换数据库:use dbname;


知识拓展:

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

⑶ 怎么用SQL语句表示年龄表中只有出生日期这个字段

首先呢根据题目来看实在数据库实现的时候没有考虑全面。在设计阶段可以只有出生日期,但应该能分析到年龄是经常使用的,必须将年龄设计成派生属性,在关系的实现时将其作为表的一个列age,并为其设置默认值year(getdate())-year(出生日期),这样在查询的时候直接查选age即可。建议修改表结构,一劳永逸。其次,如果不修改表结构,也只能使用sql中的日期函数,比如datediff。在这给出sqlserver中的写法:
select DATEDIFF(yy, GETDATE(), 出生日期) as 'age' from table_name
还有一种办法,就是在应用编程中操作,利用脚本语言进行处理。

⑷ SQL查询所有男生的姓名、年龄,并按年龄排序

SLECT
‘姓名','年龄'
FROM
表名
WHERE
'性别'='男'
ORDER
BY
‘年龄';
ORDER
BY
默认的是升序排列
ASC
也可设置为降序排列
DESC
如:
安装年龄降序排列
SLECT
‘姓名','年龄'
FROM
表名
WHERE
'性别'='男'
ORDER
BY
‘年龄'
DESC;

⑸ 一个很简单的SQL题“知道生日怎样求年龄”

这个功能如果在SQL里做,不是一个很简单的SQL题了。

不过思路其实很简单:
上次提供给你的写法的确是有点问题。请看下面的解释:
相隔年数:生日与现在对比很容易计算得到,要注意,如果出生日期比现在迟则需要减1,因为你计算的是周岁;
月数:( 生日 + 相隔年数 )与现在对比得到,同样,如果生日日期比现在迟则需要减1;
日数:( 生日 + 相隔年数 + 月数)与现在对比得到,如果今天不算,那么减1,如果今天算,那么不减。

具体就是:
“年”=
select
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end
“月”=
select
case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end
“日”=
select datediff(day, dateadd( mm, case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end, dateadd( yy, case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,生日)),getdate())

把年月日连接起来,就是:
select
convert( varchar,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end)
+' 年 '+
convert( varchar,
case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end
)
+' 月 '+
convert( varchar,
datediff(day, dateadd( mm, case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end, dateadd( yy, case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,生日)),getdate())
) + ' 日 '

像这种问题,一般不会在SQL中来做的,因为相对来说太复杂了。一般会在前台程序代码里实现,不过既然你提出这个问题来了,我就研究了几个小时,算是对新人的支持,呵呵。

⑹ sql求年龄

你这是oralce吧
--获取两时间年份差
select EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) years from al;
如果是sql
那就简单了

⑺ SQL语句如何根据出生日期计算年龄

第一种:
一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄
datediff(year,birthday,getdate())
例:birthday = '2003-3-8'
getDate()= '2008-7-7'
结果为:5
这样结果是会返回该人员的大概年龄,但不精确.不会精确到月或日.
按照上面测试的日期,该人员的实际年龄应该还不满5岁。在需要精确年龄的时候,就会有错.
第二种:
FLOOR(datediff(DY,birthday,getdate())/365.25)
FLOOR函数:
FLOOR(expr) 返回小于或等于expr的最大整数.FLOOR(1.1)返回1,FLOOR(-1.1)返回-2,FLOOR(1)返回1
这样就可以精确算出,该人员当前实际年龄了.
测试:
birthday = '2000-7-8'
getdate()= '2007-7-7'
算出结果为:6

在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来。
一种常用的方法是:to_number(to_char(sysdate,'yyyy'))
还有一种更好的方法,那就是使用oracle提供的Extract函数,使用方法是:
extract(year from sysdate) ,此方法获得的结果是数值型的 ,这种方法省掉了类型转换,更加简洁。
相应的,要取得月份或日,可以用extract (month from sysdate) 和extract (day from sysdate)

⑻ sql 计算年龄

用getdate()获得今天的日期,再用datediff算的年数
也可以直接取年份相减啊

⑼ SQL中,如何查询年龄

日期函数,access与SQL Server是有一点区别的,
如果是access的话,
select * from 你的表名
where year(now())-year(出生日期) between 20 and 25
如果是SQL Server的话,
select * from 你的表名
where year(getdate())-year(出生日期) between 20 and 25
呵呵,希望能有帮助,^_^