DECODE(TO_CHAR(BDATE,'YYYY-MM-DD'),'1900-01-01','1990-01-01',TO_CHAR(BDATE,'YYYY-MM-DD')) AS date,这句话的意思是什么?
2 回答
江户川乱折腾
TA贡献1851条经验 获得超5个赞
TO_CHAR(BDATE,'YYYY-MM-DD'):是将表中BDATE字段(应该是日期类型)转化为格式为YYYY-MM-DD的字符类型,比如2009-12-15
DECODE(TO_CHAR(....),'1900-01-01',‘1990-01-01’,TO_CHAR(...)) as date :首先DECODE()的语法是DECODE(A,a,m,n),意思是IF A=a then 显示m else 显示 n .也就是如果BDATE是1900-01-01的话就显示1990-01-01否则就仍显示BDATE。AS 只是给这整个DECODE()的字段取个别名,你可以不加AS DATE试试,看看输出的第一行就明白了。
MMTTMM
TA贡献1869条经验 获得超4个赞
select decode('1','1','2','4') from dual;
select decode ('1','2','3','4') from dual;
/*--执行上面代码可得知decode是怎么回事
--select decode (字段,值1,值2,值3) from 表 如果字段=值1 则得到的结果是值2 否则得到的结果是值3*/
select sysdate from dual;
select to_char(sysdate,'yyyy-mm-dd') from dual
/*---to_char() 查询出来的日期,以后面的‘yyyy-mm-dd’ 的格式显示*/
- 2 回答
- 0 关注
- 174 浏览
添加回答
举报
0/150
提交
取消