几个强大的oracle自带函数,可根据日期算年纪,根据数值匹配字段

select A.USER_NAME,
decode(A.SEX, 1, ‘男‘, 2, ‘女‘)AS SEX,
A.HEAD_PORTRAIT,
TRUNC(months_between(sysdate, A.BIRTHDAY) / 12) || ‘岁‘ AS BIRTHDAY,
Z.DISEASE_NAME
from T_PATIENT_INFO A

说明:decode 数值匹配字段,写到sql里就不用再到页面上进行<c:if>判断了,

months_between 获取两个时间之间的间隔月数,这里是整除12来获取岁数,很是方便,

TRUNC函数返回以指定元素格式截去一部分的日期值

还有sql中的连接符 ||,也要注意,用处很多也用的很广

一下列了几个函数的示例,可以参考

decode(A.STATUS, 0, ‘未完成‘, 1, ‘已完成‘, 2, ‘待完成‘, 5, ‘已删除‘ )AS STATUS_NAME,

to_char( A.CREATE_TIME, ‘YYYY-MM-DD hh:mi:ss‘)  as  CREATE_TIME

to_char( A.CREATE_TIME, ‘YYYY-MM-DD HH24:mi:ss‘) as CREATE_TIME,
to_char( F.TIME, ‘YYYY-MM-DD HH24:mi:ss‘) as TIME

时间: 2024-11-05 21:44:43

几个强大的oracle自带函数,可根据日期算年纪,根据数值匹配字段的相关文章

oracle看到用户的所有表名、表睐、字段名称、现场的目光、是空的、字段类型

--oracle看到用户的所有表名.表睐.字段名称.现场的目光.是空的.字段类型 select distinct TABLE_COLUMN.*, TABLE_NALLABLE.DATA_TYPE, TABLE_NALLABLE.NULLABLE from (select distinct utc.table_name table_name, utc.comments table_comments, ucc.column_name column_name, ucc.comments column_

Oracle获取表结构信息:表名、是否视图、字段名、类型、长度、非空、主键

select a.TABLE_NAME as "TableName", case when (select count(*) from user_views v where v.VIEW_NAME =a.TABLE_NAME )>0 then 'V' else 'U'end as "TableType", a.COLUMN_NAME as "ColumnName", A.COLUMN_ID as "ColumnIndex"

Oracle 11g SQL fundamentals 03 -- 日期操作函数

1.Oracle日期在内部的表示是数值格式,精确度从世纪到秒. 2.默认的日期表示格式为DD-MON-RR  (不是YY) YY 与 RR 的区别: 3.日期操作函数 示例: NEXT_DAY的第二个参数也可以是数字,表示几天后的日期.LAST_DAY是求该日期所在月份的最后一天. ROUND('DD-11-2014','MONTH')是精确到月,‘日’1-15号算这个月的 ('01-11-2014'),超过15号算下个月的 ('01-12-2014'). ROUND('DD-MON-2014'

Oracle数据库中,通过function的方式建立自增字段

Oracle数据库无自增字段设置,可以通过function的方式设置字段自增来作为ID. 1.创建表tSequence来存储各表的next ID. 2.创建function类似如下: 1 CREATE OR REPLACE FUNCTION "FUNC_NEXTID" 2 (tablename in varchar2) return number is 3 4 nextid number(12); 5 begin 6 begin 7 select nvl(max(id),-1) int

Oracle 求昨天 上个月 去年 日期

到公司发现有一个报表没有收到,查看后发现原来是Oracle数据源异常. SELECT to_char(SYSDATE - interval '1' month, 'yyyyMMdd') AS fromdata, to_char(SYSDATE - interval '1' day, 'yyyyMMdd') AS enddata FROM DUAL; 上面这个sql求上个月今天和昨天.一般情况下不会报错. 但是今天是5月31号,上个月今天就是4月31号.Oracle找不到,只能报错了. 依此类推,

Oracle、Mysql、SqlServer创建表和给表和字段加注释

一.Oracle --创建表 create table test ( id varchar2(200) primary key not null, sort number, name varchar(200) ) --字段加注释 comment on column test.id is 'id'; comment on column test.sort is '序号'; --表加注释 comment on table test is '测试表'  二.Mysql --创建表 create tab

Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法

1.错误原因: date类型不能包含秒以后的精度. 如日期:2010-01-01 20:02:20.0 解决方法:将日期秒以后的精度去除, to_date(substr(INVOICE_DATE,1,10),'yyyy-mm-dd')如日期:2010-01-01 20:02:20 2.INSERT INTO TEST2 (C1, C2,c3) VALUES (${v1},${v2},to_date(${v3},'yyyy-mm-dd'));oracle里面不需要以“:”结尾. 3.修改数据库日期

oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel

Oracle sql 错误 : ORA-01861: 文字与格式字符串不匹配和日期与字符串互转问题解决

正确的要这样的: public int update(String ceratedate); <update id="update" parameterType="String"> update table set ceratedate=to_date(#{ceratedate},'yyyy-mm-dd'); </update> 运行 OK 没有问题 那我们查询时,如何将时间格式转换成字符串呢?要用到to_char()函数 Date格式转换成