mysql日期函数

#查询某日期是星期几(1=星期天,2=星期一,…………,7=星期六)。

SELECT DAYOFWEEK('2019-09-23') 

#查询某日期是星期几(0=星期一,1=星期二,…………,6=星期天)。

SELECT WEEKDAY('2019-09-29')

#查询该日期为当月的第几天(1-31) 。

SELECT DAYOFMONTH('2019-09-29') 

#查询该日期为当年的第几天(1-366) 。

SELECT DAYOFYEAR('2019-09-29') 

#查询某日期的月份(1-12)。

SELECT MONTH('2019-01-29') 

#查询某天的星期,返回英文单词。

SELECT DAYNAME('2019-09-29') 

#查询某日期的月份,返回英文单词。

SELECT MONTHNAME('2019-09-29') 

#查询某日期的季度(1-4)

SELECT QUARTER('2019-11-28') 

#查询某日是一年的第几天,第二个参数可选,默认为服务器的默认星期模式,
#查询服务器的默认星期模式:SHOW VARIABLES LIKE 'default_week_format';
#即一个星期从星期几开始,(0-7分别表示新的一周从周日-周六开始)。

SELECT WEEK('2019-01-06')
SELECT WEEK('2019-01-01','1')

#查询日期的年份(在1000-9999)。

SELECT  YEAR('2019-01-06') 

#获取小时数(0-23)。

SELECT HOUR('2019-01-06 13:05:03') 
SELECT HOUR('13:05:03') 

#返回分钟数(0-59)。

SELECT MINUTE('2019-01-06 13:59:03') 
SELECT MINUTE('13:59:03') 

#返回秒数(0-59)。

SELECT SECOND('2019-01-06 13:59:03') 
SELECT SECOND('13:59:03') 

#给某日期新增月份后返回日期(日期格式YYMM或YYYYMM,建议使用后者。)。

SELECT PERIOD_ADD('201909','-14') 
SELECT PERIOD_ADD('201909','14')

#查询两个日期之间的月份数。

SELECT PERIOD_DIFF('201909','201909') 
SELECT PERIOD_DIFF('201809','201909')
SELECT PERIOD_DIFF('201909','201809')

#给某日期减少或增加秒钟数(年用year、月month、天用day、小时用hour、分钟用minute)。

SELECT DATE_ADD('1999-12-31 23:59:59',INTERVAL 1 SECOND)
SELECT DATE_SUB('1999-12-31 23:59:59',INTERVAL 1 SECOND) 
SELECT ADDDATE('1999-12-31 23:59:59',INTERVAL 1 SECOND) 
SELECT SUBDATE('1999-12-31 23:59:59',INTERVAL 1 SECOND)

#复合单位如下,即对该时间进行多个单位时间的操作。

SELECT SUBDATE('1999-12-31 23:59:59',INTERVAL '1 1' HOUR_MINUTE)
SELECT SUBDATE('1999-12-31 23:59:59',INTERVAL '1 1' MINUTE_SECOND)
SELECT SUBDATE('1999-12-31 23:59:59',INTERVAL '1 1' DAY_HOUR)
SELECT SUBDATE('1999-12-31 23:59:59',INTERVAL '1 1' YEAR_MONTH)

#格式化日期(这里列举常用的几种模式)。

SELECT DATE_FORMAT('2009-08-13 10:08:52','%Y年%m月%d日%H时%i分%s秒') 
SELECT DATE_FORMAT('20090813100852','%Y-%m-%d %H:%i:%s') 

#格式化日期,该函数只能处理小时、分钟和秒。

SELECT TIME_FORMAT('2009-08-13 10:08:52','%H时%i分%s秒')
SELECT TIME_FORMAT('20090813100852','%H:%i:%s')

#返回当前日期,格式为:%Y-%m-%d。

SELECT CURDATE() 
SELECT CURRENT_DATE()

#返回当前时间,格式为:%H:%i:%s。

SELECT CURTIME() 
SELECT CURRENT_TIME()

#返回具体时间,格式为:%Y-%m-%d %H:%i:%s。

SELECT NOW() 
SELECT SYSDATE() 
SELECT CURRENT_TIMESTAMP()

#返回日期对应的时间戳。

SELECT UNIX_TIMESTAMP('2009-08-13 10:08:52') 
SELECT UNIX_TIMESTAMP('20090813100852') 

#生成毫秒级别的时间戳

SELECT 
REPLACE(UNIX_TIMESTAMP(CURRENT_TIMESTAMP(3)),'.','')  order_number ;

#生成秒级别的时间戳

SELECT UNIX_TIMESTAMP()

#返回时间戳对应的日期。

SELECT FROM_UNIXTIME(1250129332) 
SELECT FROM_UNIXTIME(1250129332,'%Y-%m-%d %H:%i:%s') 

#返回某时间在当年的这一天过了多少秒。

SELECT TIME_TO_SEC('2009-01-01 00:01:50') 

#返回某时间在当天过了多少秒。

SELECT TIME_TO_SEC('00:00:21'); 

#两个日期之差,前面的日期减去后面的日期(结果返回-10)

SELECT DATEDIFF('2008-08-8', '2008-08-18')

原文链接:https://blog.csdn.net/qq_39706570/article/details/101706322

环比增长率,两种算法
在这里插入图片描述

select
a.年度,a.月度,a.离职数,

CONCAT(ROUND((a.离职数-b.数)/b.数*100,2),'%') as 环比增长率,

a.`离职数`/b.`数`-1 as 环比增长
from
(
select
年度,
月度,
count(月度) as 离职数
from test2
where 年度='2009' and 类型='离职'
group by 月度
)a
left join
(
select
年度,
月度,
count(月度) as 数
from test2
where 年度='2009' and 类型='离职'
group by 月度
)b
on a.月度=b.月度+1
order by a.月度+0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值