那么得到的结果就是1.
你应该是想要减法吧.
①.、因为oracle运行在Linux系统下,首先,要连接Linux系统.
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
FROM SYS.DBA_FREE_SPACE,GROUP BY TABLESPACE_NAME) F,
FROM SYS.DBA_DATA_FILES DD,GROUP BY DD.TABLESPACE_NAME) D,
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME,ORDER BY 1;
本质原因在于无限小数,当两个日期在做减法时,已经触发了无限循环小数.
倘若此时不使用 to_number,那我们可以将两个日期的差理解为是一个分数形式.
而使用了to_number就不同了,number类型本身是有容量的,无限循环小数转为number类型,会被强制截断小数位,摇身一变成了有限小数.
不可控的原因在于计算机本质采用的是二进制数据处理方式,在计算浮点数的时候有先天缺陷.
取余数简单就是%,比如select
from
dual;
至于没有rownum的数据库,那么可能要通过id什么的来取了.
可能还有其他方式方法,不过暂时我还没有想到.
接收字符返回字符或数值时可以使用dual伪表
①.、把小写字符转换成大写
select supper("smi") form dual
lower("SMI")
initcap("smi")
concat("hello""world") 结果为helloworld
length("hello")
replace("hello","l","x") 结果为hexxo
①.、四舍五入函数ROUND()
默认取整,可以指定保留位数
默认全部去掉小数,可以指定位数
oracle中提供了很多和日期相关的函数,包括日期的加减
日期 - 数字 =日期
日期 - 日期 = 数字(天)
①.、如:查询员工进入公司的走数
注:当前日期查询select sysdate form dual
获取两个时间段的月数使用months_between(sysdate,入职日期)
如:获取员工三个月后的日期
指定给出下次某日期数next_date()
next_date(sysdate,"星期一")
求出本月的最后一天
last_day(sysdate)
①.、to_char字符串转换函数
如:将所有员工的入职日期的年、月分开
注:在划分时需要通配符
年:yyyy? 月:mm? 日:dd
时:HH 分:mi? 秒:ss
定义时间格式
在10以下的月数前面会默认加上前导零,去除加上fm
to_char还可以给数字做格式化
如将员工的工资按三位","分隔
如果想在钱上加上国家符号
美元使用
中文使用l
to_number("10") +to_number("10")
①.、空值处理 nvl
如果在查询的时候存在空值的情况可以使用
nvl(comm,0) 当comm的列值为空时,用0代替
该函数类似于if ...else if ...else
decode(中国,中国,我是中国,美国,我是美国,其他)
如果为中国返回我是中国,为美国返回我是美国,为其他字符则返回其他.
语法 case when city=中国 then 我是中国
? ? ? ? ? ? when city=美国 then 我是美国
? ? ? ? ? ? ? else 其他
以上就是土嘎嘎小编为大家整理的oracle怎么取余数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!