MySql与Oracle数据库函数

本文详细介绍了MySql中的日期处理函数,如获取上个月、当前日期等,以及数值处理函数,如四舍五入、直接截取小数位。同时,也探讨了Oracle数据库的相关处理函数,包括当前日期、前一月转换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MySql日期处理函数

select round(109.456,2)
 
 -- 获取上个月的月份和年份:如果当前月份为1月,则上个月为去年的12月;否则,上个月为当前年份的上一个月。我们可以使用IF函数来实现这个逻辑 --
SELECT IF(MONTH(NOW())=1,12, MONTH(NOW())-1), IF(MONTH(NOW())=1, YEAR(NOW())-1, YEAR(NOW()))
 

-- 获取当前日期时间
 SELECT NOW()


 str_to_date(now(),'%d-%M-%Y')


 SELECT DATE_FORMAT('2019-03-01', '%Y') as year,DATE_FORMAT('2019-03-01', '%m') as MONTH


 SELECT DATE_FORMAT(NOW()-1 , '%Y') as year,DATE_FORMAT(NOW()-1, '%m') as MONTH,DATE_FORMAT((NOW()-1), '%d') as day
 
 --  获取当前日期 --
select curdate()

-- 获取昨日日期 --
select date_sub(curdate(),interval 1 day)

-- 获取当前日期的前两天 --
select date_sub(curdate(),interval 2 day)


-- 获取当前日期后一天 --
select date_sub(curdate(),interval -1 day)

SELECT
CONCAT(DATE_FORMAT(LAST_DAY(NOW() – INTERVAL 1 MONTH),'%Y-%m-01'),' ', '00:00:00') as '上月开始时间',
CONCAT(LAST_DAY(NOW() – INTERVAL 1 MONTH),' ', '23:59:59') as '上月结束时间'

 
 -- 要求获得最近一个月的数据--

SELECT * FROM your_table_name
WHERE DATE_FORMAT(your_date_column, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m');
 

SELECT now()
WHERE DATE_FORMAT(your_date_column, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m');
 

二、MySql数值处理函数保留两位小数

1、round(x,d),四舍五入。round(x) ,其实就是round(x,0),也就是默认d为0

select round(109.456,2);

# 109.46

2、TRUNCATE(x,d),直接截取需要保留的小数位

select TRUNCATE(109.456,2);

# 109.45

3、FORMAT(x,d),四舍五入,保留d位小数,返回string类型

select FORMAT(109.456,2);

# 109.46

4、CONVERT(x, DECIMAL(10,d)); 转型,会四舍五入,保留d位小数

select CONVERT(109.456, DECIMAL(10,2));?

#109.46

5、CEILING(x); 直接取整,个位+1

select CEILING(100.56);

#101

6、FLOOR(x); 直接取整

select FLOOR(100.56);

#100

三、Oralce数据库处理函数

当前⽇期:select TRUNC(SYSDATE) from dual;

前⼀天:select TRUNC(SYSDATE - 1) from dual;

前⼀天转换为⽇期格式: select to_char(TRUNC(sysdate-1),’fmdd’) from dual;

to_char(TRUNC(sysdate-1),‘fmdd’)

前⼀个⽉⽇期: select add_months(trunc(sysdate),-1) from dual;

前⼀个⽉:select TRUNC(add_months(trunc(sysdate),-1),’MM’) from dual;

后⼀个⽉转换为字符串:select to_char(add_months(trunc(sysdate),1),’yyyymm’) from dual;

前5年:SELECT TO_DATE(to_char(sysdate, 'yyyy')-5,'yyyy') from dual

前5个月:SELECT TO_DATE(to_char(sysdate, 'yyyymm')-5,'yyyymm') from dual

前5天:SELECT TO_DATE(to_char(sysdate, 'yyyymmdd')-5,'yyyy-mm-dd') from dual

TO_DATE(STAT_DATE,'yyyy') <= TO_DATE(to_char(sysdate, 'yyyy')-1,'yyyy') AND TO_DATE(STAT_DATE,'yyyy') >= TO_DATE(to_char(sysdate, 'yyyy')-5,'yyyy')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春化雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值