数值和日期函数

1、ABS取绝对值

SELECT ABS(3),ABS(-100) FROM dual;

结果:3,100

2、CEIL向上取整

SELECT CEIL(3.34343),CEIL(3.932),CEIL(-3.4432),CEIL(-5.9889) FROM dual;

结果:4,4,-3,-5
3、FLOOR向下取整

SELECT FLOOR(3.34343),FLOOR(3.932),FLOOR(-3.4432),FLOOR(-5.9889) FROM dual;

结果:3,3,-4,-6
4、SIN正弦,COS余弦

SELECT SIN(4),COS(4) FROM dual;

5、POWER(m,n),m的N次方

SELECT POWER(2,4) FROM dual;

结果:16

6、ROUND函数的使用

SELECT ROUND(785.652) 不保留小数,ROUND(785.652,2)保留2个小数,ROUND(785.652,-1) 整数位进一位,ROUND(785.352) 小数小数位第一个不到5舍掉,ROUND(784.652,-1) 整数位进一位个位不到5舍掉FROM dual;

结果:786,785.65,790,785,780

7、TRUNC函数截取不进位的

SELECT TRUNC(785.652) 不保留小数小数舍掉,TRUNC(785.652,2)保留2个小数,TRUNC(785.652,-1) 整数位进一位,TRUNC(785.352) 保留小数直接舍掉,TRUNC(784.652,-1) 整数位进一位个位舍掉FROM dual;

结果:785,785.65,780,785,780

8、MOD求余函数

SELECT MOD(10,3)FROM dual;

结果:1
9、SQRT平方根

SELECT SQRT(16) FROM dual;

结果:4

10、获取当前时间

SELECT SYSDATE FROM dual;

11、获取距离今天3天后,和3天前的日期

SELECT SYSDATE 今天,SYSDATE-3 三天前,SYSDATE+3 三天后 FROM dual;
12、查询出每个员工入职到今天的入职天数,以及十天前每个员工的入职天数

SELECT e.hiredate 入职日期,SYSDATE 今天,SYSDATE-e.hiredate 入职到今天的天数,SYSDATE-10-e.hiredate 十天前的入职天数FROM emp e;

13、ADD_MONTHS(日期,数字) 求出在指定日期上加或者减指定的月数,数字,可以为正也可以为负

SELECT SYSDATE 当前日期,add_months(SYSDATE,3) 三个月之后的日期,add_months(SYSDATE,-3) 三个月之前的日期,add_months(SYSDATE,60) 六十个月之后的日期FROM dual;

SELECT e.empno,e.ename,e.hiredate,add_months(e.hiredate,3)入职三个月的日期FROM emp e;
14、NEXT_DAY(日期,星期几)求出下个星期的具体日期

SELECT SYSDATE 当前日期,next_day(SYSDATE,‘星期五‘) 下个星期五,next_day(SYSDATE,‘星期一‘) 下个星期一FROM dual;
15、LAST_DAY()指定日期的最后一天的日期

SELECT SYSDATE,last_day(SYSDATE) FROM dual;

SELECT e.empno,e.ename,e.hiredateFROM emp e WHERE e.hiredate=last_day(e.hiredate)-2;//查询所有在入职日期在当月最后第三天入职的员工,最后一天-2
16、MONTHS_BETWEEN
--查询每个员工的编号,姓名,入职日期,入职的月数和年份
--月数MONTHS_BETWEEN(SYSDATE,hiredate)年数MONTHS_BETWEEN(SYSDATE,hiredate)/12

SELECT e.empno,e.ename,e.hiredate,trunc(months_between(SYSDATE,e.hiredate)) 入职的月数,trunc(months_between(SYSDATE,e.hiredate)/12) 入职的年数FROM emp e;
17、EXTRACT(格式 FROM 日期)将日期分豁,或者计算2个日期的间隔

SELECT e.empno,e.ename,e.hiredate,TRUNC(months_between(SYSDATE,e.hiredate)/12) 年,TRUNC(MOD(months_between(SYSDATE,e.hiredate),12)) 月,TRUNC(SYSDATE-add_months(e.hiredate,months_between(SYSDATE,e.hiredate))) 日FROM emp e;

SELECT SYSDATE,EXTRACT(YEAR FROM SYSDATE)年,EXTRACT(MONTH FROM SYSDATE) 月,EXTRACT(DAY FROM SYSDATE) 日FROM dual;//从时间戳中取出年,月,日,时,分,秒

SELECT SYSTIMESTAMP,EXTRACT(YEAR FROM SYSTIMESTAMP)年,EXTRACT(MONTH FROM SYSTIMESTAMP) 月,EXTRACT(DAY FROM SYSTIMESTAMP) 日,EXTRACT(HOUR FROM SYSTIMESTAMP) 时,EXTRACT(MINUTE FROM SYSTIMESTAMP) 分,EXTRACT(SECOND FROM SYSTIMESTAMP) 秒FROM dual;

时间: 2024-11-07 11:23:04

数值和日期函数的相关文章

Oracle数据库数值、日期函数的学习

一.数值函数的学习 1)number(p,s).number(p).number(*,s),p的值为1-38之间. 2)数值类型的兼容性 --:numeric(p,s) 相当于number(p,s) --:decimal(p,s)或dec(p,s) 相当于number(p,s) --:integer或int(不能指定位数)相当于number(38) --:smallint相当于number(38) --:float相当于number --:double precision相当于number --

mysql 开发基础系列6 数值与日期函数

一. 数值函数 1.  abs(x) 返回x的绝对值 SELECT ABS(-0.8),ABS(0.8); 2.ceil(x) 返回大于x的最大整数 SELECT CEIL(-0.8),CEIL(0.8); 3.floor(x) 返回小于x的最大整数 SELECT FLOOR(-0.8),FLOOR(0.8); 4.mod(x,y) 返回x/y的模 SELECT MOD(15,10),MOD(1,11),MOD(NULL,10) 5. rand() 返回0到1内的随机值 SELECT RAND(

MySQL学习18:运算符与函数之数值运算符和函数、比较运算符和函数、日期时 间函数

数值运算符和函数 常见的数值函数下面几个: (1)数值运算符 MySQL数据库常见的数值运算符有:+.-.*...%等等.这里我们就不再一一列举,只是来看两个例子: SELECT 3+4; SELECT 3%4; (2)进一取整和舍一取整 SELECT CEIL(3.01); SELECT FLOOR(3.99); (3)整数除法 SELECT 3/4; SELECT 3 DIV 4; (4)取余数(取模) SELECT 5 % 3; SELECT 5 MOD 3; (5)幂运算 SELECT

oracle 数值 日期函数

数值函数 常用的处理数值的函数有如下: No. 函数名 含义 1 数字 round(列 | 数字[.小数位]) 返回数据四舍五入后的值 2 数字 trunc(列 | 数字[.小数位]) 数据截取,即不会进位 3 数字 mod(列 | 数字, 列 | 数字) 求余数 日期函数 日期有三个操作公式: 日期 + 数字 = 日期(n天之后的日期) 日期 – 数字 = 日期(n天之前的日期) 日期 – 日期 = 数字(日期之间的天数) 示例1:显示三周前(21天)的日期. select sysdate-2

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:数值型函数,日期函数,转换函数,组函数,分组,排序,两表查询连接

--数值型函数 --四舍五入round(x,y)对x保留y为小数 --四舍五入数值 select round(23.225) from dual; --输出结果:24 --四舍五入(小数点后保留1位小数)数值 select round(23.652,1)from dual; --输出结果:23.7 --四舍五入(四舍五入到小数点前1位小数)数值 select round(25.2466,-1)from dual; --输出结果:30 -- 返回x按精度y截取后的值 --未四舍五入的值 selec

SQL-数学、字符串、时间日期函数和类型转换

--数学函数 --ABS绝对值,select ABS(-99)--ceiling取上限,select CEILING(4.5)--floor去下限select FLOOR(4.5)--power 几次方,select POWER(2,2)--round四舍五入,select round (6.45,1)--sqrt开平方select SQRT(9)--square平方select SQUARE(5) --字符串函数--ASCII 返回字符串最左边的字符ascii码select ASCII('na

日期函数:getdate,dateadd,dateiff

--日期函数--GETDATE():获取当前日期--DATEADD(间隔单位,增加的数值,源日期值):为指定的日期”增加“一个指定间隔的日期值select DATEADD(mm,3,GETDATE())select DATEADD(mm,-3,GETDATE())--DATEDIFF(间隔单位,起始日期,终止日期) 获取两个日期之间的差异值select DATEDIFF(ss,'1990-1-1',getdate())--查询学员信息,显示学员的姓名,学号,和年龄select StudentNo

四个很好用的Sql Server 日期函数:DateDiff、DatePart、DateAdd、DateName

我以前查一段时间范围内的数据都是在程序里计算好日期再掉查询语句,现在我用下面的函数.SQL SERVER没有查一季度数据的函数. DateDiff函数: 描述 返回两个日期之间的时间间隔. 语法 DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]]) DateDiff 函数的语法有以下参数: 参数 描述 interval 必选.字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔.有关数值,请参