日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle-计算岁数

發布時間:2024/4/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle-计算岁数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CREATE TABLE t_user3(
id NUMBER PRIMARY KEY,
user_name VARCHAR2(20),
birt_date date -->>java.util.Date(包含日期+時間)
)
INSERT INTO t_user3 VALUES (1,'小明',to_date('1995-10-15','yyyy-MM-dd'));
INSERT INTO t_user3 VALUES (2,'小黃',to_date('1985-09-05','yyyy-MM-dd'));
INSERT INTO t_user3 VALUES (3,'小軍',to_date('1987-07-05','yyyy-MM-dd'));
INSERT INTO t_user3 VALUES (4,'大林',to_date('1967-09-15','yyyy-MM-dd'));
INSERT INTO t_user3 VALUES (5,'彤彤',to_date('2003-09-15','yyyy-MM-dd'));
commit

select * from t_user3

action
service -->>遍歷 userList (age)
--java的日歷類有強大的時間求算能力
dao -->>不對age
entity
User
int id;
String userName;
java.util.Date birtDate;
int age;

-->>對于不在java中的程序,如果要算日期
--->>只能在sql運算
-- 1.算年齡,增加多1個字段
select
id,
user_name,
-- birt_date,
trunc(months_between(sysdate,birt_date)/12) age
from
t_user3

-- 1.看單一值 (可以使用decode去取代)
-- 2.看范圍
case when

-- 2.再增加一個年齡分層
select
id,
user_name,
age,
case
when age<19 then '未成年人'
when age<25 then '年青人'
when age<40 then '中青'
when age<50 then '中年人'
when age<60 then '中老年人'
else '老人'
end ageLevel
from (
select
id,
user_name,
-- birt_date,
trunc(months_between(sysdate,birt_date)/12) age
from
t_user3
) t_user3_age

--3.對年齡分層進行統計
select agelevel,count(1) kk from (
select
id,
user_name,
age,
case
when age<19 then '未成年人'
when age<25 then '年青人'
when age<40 then '中青'
when age<50 then '中年人'
when age<60 then '中老年人'
else '老人'
end ageLevel
from (
select
id,
user_name,
-- birt_date,
trunc(months_between(sysdate,birt_date)/12) age
from
t_user3
) t_user3_age
) t_user3_age_level
group by agelevel
order by kk desc


select * from t_user3

轉載于:https://www.cnblogs.com/sheying/p/8578548.html

總結

以上是生活随笔為你收集整理的Oracle-计算岁数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。