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

sql能写到什么年龄

发布时间: 2022-08-23 01:45:19

㈠ 如何用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,关系数据库管理系统) 应用软件。

㈡ 在数据库中怎么编写查询年龄在20——30岁之间的会员的sql语句

select*
from会员
where年龄>=20and年龄<=30

“elect * from 学生信息 where age between 18 and 20”此句sql最前面少个s

应该是 select * from 学生信息 where age between 18 and 20 意思是

在学生信息中找年龄在18到20的学生所有字段信息。

㈢ 关于oracle数据库 sql的写法 我想写一个 关于年龄分组的sql 按1-30岁,31-50岁,50以上. 想分成这3个年龄段

SELECT COUNT(CASE WHEN AGE BETWEEN 1 AND 30 THEN 1 ELSE 0 END) AS 1-30岁
,COUNT(CASE WHEN AGE BETWEEN 31 AND 50 THEN 1 ELSE 0 END) AS 31-50岁
,COUNT(CASE WHEN AGE > 50 THEN 1 ELSE 0 END) AS 50以上
FROM TABLE_NAME;
这个语句就可以做到~

㈣ sql中定义年龄用什么数据类型,长度为多少

sql中定义年龄可以用的用数据类型及长度:

1、char(3):长度为3的字符串。小于10位且长度基本固定的字符串用char。

2、varchar(3):长度为3的字符串。长度大于10的用varchar,varcha在10以内占用空间比char大。

3、int:长度为4个字节,存储从(-2147483648)到(2147483647)。

4、Smallint:长度为2个字节,存储从-32768到32767。

5、tinyint:长度为1个字节,存储0到255的数字。

(4)sql能写到什么年龄扩展阅读:

sql函数

UCASE(c)将某个域转换为大写

LCASE(c)将某个域转换为小写

MID(c,start[,end])从某个文本域提取字符

LEN(c)返回某个文本域的长度

INSTR(c,char)返回在某个文本域中指定字符的数值位置

LEFT(c,number_of_char)返回某个被请求的文本域的左侧部分

ROUND(c,decimals)对某个数值域进行指定小数位数的四舍五入

㈤ sql 匹配年龄区间

以前写过个例子 你看看
思路是先把2-5 切割
然后用游标 循环匹配(匹配三种情况 你看看)

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[import_agedata_to_proct_detail]
as
begin
declare @pid int,@begin float,@end float

--A 产品表 年龄数据
declare proct_age_data cursor for
select id,--proct_code,proct_name,
cast((case when CHARINDEX('-',[extend_property_1]) > 0 THEN
SUBSTRING(extend_property_1,1,CHARINDEX('-',extend_property_1)-1)
else SUBSTRING(extend_property_1,1,CHARINDEX('+',extend_property_1)-1)
end) as float) as beginyeay,
cast((case when CHARINDEX('-',[extend_property_1]) > 0 THEN
SUBSTRING(extend_property_1,CHARINDEX('-',extend_property_1)+1,len(extend_property_1)-CHARINDEX('-',extend_property_1)+1)
else '100'
end) as float) as endyeay
from sf_f_proct where extend_property_1 is not null --and id <200
--A 产品表 年龄数据

--B proct_type表 年龄区间
declare proct_type_data cursor for
select id,--type_name_code,
(case when CHARINDEX('-',description) > 0 THEN
SUBSTRING(description,1,CHARINDEX('-',description)-1)
else SUBSTRING(description,1,CHARINDEX('+',description)-1)
end) as beginyeay,
(case when CHARINDEX('-',description) > 0 THEN
SUBSTRING(description,CHARINDEX('-',description)+1,len(description)-CHARINDEX('-',description)+1)
else '100'
end)as endyeay
from sf_f_proct_type where parent_id=2
--B proct_type表 年龄区间

open proct_age_data
fetch next from proct_age_data into @pid,@begin,@end

while(@@fetch_status=0)
begin

--删除已有的
print('id--'+cast(@pid as varchar)+':') --print('age:'+cast(@begin as varchar)+'--'+cast(@end as varchar))
delete from sf_f_proct_detail where id in(
select d.id from sf_f_proct_type t,
(select id,relate_id from sf_f_proct_detail where proct_id=@pid and relate_type='type')d
where t.id = d.relate_id and t.parent_id=2)
--删除已有的

declare @relate_id int,@relate_begin float,@relate_end float
--循环匹配
open proct_type_data
fetch next from proct_type_data into @relate_id,@relate_begin,@relate_end
while(@@fetch_status=0)
begin
--三种情况说明 以0.5-5.5为例 匹配0-2,3-4,5-6
--0<=0.5 && 0.5<=2, 0.5<=3 && 4<=5.5, 5<5.5 && 5.5<=6
if((@relate_begin<=@begin and @begin<@relate_end) or (@begin<=@relate_begin and @relate_end<=@end) or (@relate_begin<@end and @end<=@relate_end))
begin
--print(' '+cast(@relate_begin as varchar)+'--'+cast(@relate_end as varchar))
insert into sf_f_proct_detail(proct_id,relate_type,relate_id,last_update_time,last_update_by)
values(@pid,'type',@relate_id,getdate(),3)
end

fetch next from proct_type_data into @relate_id,@relate_begin,@relate_end
end
close proct_type_data
--循环匹配

--print('-------------')
fetch next from proct_age_data into @pid,@begin,@end
end

close proct_age_data
deallocate proct_type_data
deallocate proct_age_data
end

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

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

㈦ sql server 中我想储存年龄字段精确到几岁零几个月该怎么做

数据库里存 出生日期,想显示年龄字段,在select语句里写如下:

select *,CONVERT(varchar(8),DATEPART(DAY,GETDATE())) + '岁零' + CONVERT(varchar(8),DATEPART(MONTH,GETDATE())) + '月' as 年龄 from 表

㈧ 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
呵呵,希望能有帮助,^_^

㈩ 关于年龄段查询的sql语句:怎么写出来呀 年龄段 人数 百分比 男 女 合计 男 女 0-10 11-20 。 。

给一个示例,自己修改

SELECT '年龄段'=(case
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=25 THEN '25岁及以下'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=33 THEN '26岁-33岁'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=41 THEN '34岁-41岁'
else '41岁以上'
END),
COUNT(FID) AS 人数,
CAST(
LEFT(
ROUND(100.00 * COUNT(FID) / (SELECT COUNT(FID) AS total
FROM tperson
WHERE FEmployState='正式'),
2),
5)
AS VARCHAR) + '%' AS 百分比

FROM TPERSON
WHERE FEmployState IN ('正式')
GROUP BY
(case
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=25 THEN '25岁及以下'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=33 THEN '26岁-33岁'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=41 THEN '34岁-41岁'
else '41岁以上'
END)