㈠ sql中知道出生日期如何查询的年龄
sql是不能查询的,php可以计算年龄
1、取得当前日期的时间戳
2、将sql中的出生日期换算成时间戳
3、当前日期时间戳-出生日期时间戳
4、将得到的数值转换为年月日
㈡ SQL如何取年月
1、首先大部分都会使用的就是获取当前日期了,getdate直接用。
㈢ 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 server数据库里通过出生日期,然后算出他的年龄
SqlServer中通过出生日期计算年龄可用year函数。步骤如下:有student表,数据如下,其中birthday列为生日列。
美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
主要特点是高性能设计,可充分利用WindowsNT的优势。
系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
强大的事务处理功能,采用各种方法保证数据的完整性。
支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
㈤ sql 如何取日期中的年月
需要设置函数公式select * from 表名 where Convert(varchar(10),日期字段,120)='2008-12-15'即可输出。
如获取年月日,设置 select CONVERT(varchar(100), GETDATE(), 23)
输出2017-03-06 ,如需获取年月
select CONVERT(varchar(7), GETDATE(), 120)
输出变为2017-03。
拓展资料
1、结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
2、结构化查询语言包含6个部分:数据查询语言(DQL:Data Query Language);数据操作语言(DML:Data Manipulation Language);事务处理语言(TPL);数据控制语言(DCL);数据定义语言(DDL);和指针控制语言(CCL)。
资料来源:SQL 教程-函数设置
㈥ 一个很简单的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数据表只有年龄怎么查询出生年份
SQL数据表只有年龄可以使用数据库里的日期处理函数,倒推出生年份。年龄指的是,从出生年月到现在经过了多少年。也就是说,从现在往前推年龄的年数,就得到了出生年份。比如,你现在20岁,可以用如下SQL得出出生的年月:SELECT DATEADD(year, -20, GETDATE)。
年龄:
年龄,指一个人从出生时起到计算时止生存的时间长度,通常用年岁来表示。年龄是一种具有生物学基础的自然标志,一个人出生以后,随着日月流逝,年龄也随之增长,这是不可抗拒的自然规律。人在进行自身再生产的同时,也进行着年龄的再生产,它总是由不同年代出生的不同年龄的个人所组成。都与每个人的年龄密切相关。所以,正确计算年龄具有十分重要的意义。