正文
oracle怎么限定年龄 oracle年龄段查询
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
在oracle中,如何在指定条件下使用check约束 例如:男生年龄小于23岁,女生年龄小于21岁。
CREATE TABLE test_chk_case_when (
id int,
name varchar(10),
sex varchar(4),
age int
);
-- 男生年龄小于23岁,女生年龄小于21岁。
ALTER TABLE test_chk_case_when
ADD CONSTRAINT chk_test_sex_age
CHECK (
CASE WHEN sex='男' AND age23 THEN 1
WHEN sex='女' AND age21 THEN 1
ELSE 0 END = 1
);
SQL INSERT INTO test_chk_case_when VALUES(1, '张三', '男', 22);
已创建 1 行。
SQL INSERT INTO test_chk_case_when VALUES(2, '李四', '男', 23);
INSERT INTO test_chk_case_when VALUES(2, '李四', '男', 23)
*
ERROR 位于第 1 行:
ORA-02290: 违反检查约束条件 (TEST.CHK_TEST_SEX_AGE)
SQL INSERT INTO test_chk_case_when VALUES(3, '王五', '女', 20);
已创建 1 行。
SQL INSERT INTO test_chk_case_when VALUES(4, '赵六', '女', 21);
INSERT INTO test_chk_case_when VALUES(4, '赵六', '女', 21)
*
ERROR 位于第 1 行:
ORA-02290: 违反检查约束条件 (TEST.CHK_TEST_SEX_AGE)
Oracle 根据出生日期计算年龄
可用to_char函数将date类型转成字符类型。
如emp表中有如下数据:
如果计算生日的方法是当前日期的年份减去生日的年份,可用如下语句:
select ename,hiredate,to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy') from emp;
查询结果:
Oracle PL/SQL 计算年龄
根据出生日期查询年龄用的还挺多的。
简单分析一下,加入一个孩子五岁半了,那习惯认为他还是5岁。
用Oracle提供的months_between()函数,先获取出生日期和当前日期的月数,然后除以12向下取整:
使用的时候,将时间段替换成出生日期对应的字段即可。
如果,计算年龄用的次数非常多,最好写成自定义函数。
关于oracle怎么限定年龄和oracle年龄段查询的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。