SQL的日期函数

日期函数

日期函数

在DBMS中日期和时间值以特殊的格式存储,以便能快速和有效地排序或过滤。常见的日期数据格式有两种:'yyyy-MM-dd' 和 'yyyyMMdd'。

时间戳-日期格式转化

时间戳是数据库中自动生成的唯一二进制数字,表明数据库中数据修改发生的相对顺序,其记录形式类似:1627963699 ,在实际工作环境中,对于用户行为发生的时间通常都是用时间戳进行记录,时间戳和日期格式之间可以利用from_unixtime和 unix_timestamp进行转换。

from_unixtime可以将时间戳转换成日期,其使用语法和输出如下所示:

select
from_unixtime(time,'yyyy-MM-dd') as time
From question_practice_detail

得出

Time

2021-08-03

2021-08-03

2021-08-03

unix_timestamp可以将日期转换回时间戳,其使用语法和输出如下所示:

select
from_unixtime('2021-08-01','yyyy-MM-dd') as time

年月日截取

对于常见的日期格式,类似’2021-08-01’,有时候在聚合计算时我们会想将日期中的

年、月、日分别提取出来,这时应该怎么做呢?SQL为此提供了对应的年、月、日提取

函数,分别为year(),month(),day()。

select

year('2021-08-01'),month('2021-08-01'),day('2021-08-01')

日期差计算

这一节我们再来介绍几个常用的日期间隔计算函数

-datedff

datediff的作用为计算两个日期之间的天数间隔,语法为datediff(date1,date2),返回

起始时间 date1 和结束时间 date2 之间的天数,date1大于date2的情况下,返回的天

数为正数,date1小于date2的情况下,返回的天数为负数。

select
datediff('2021-08–09','2021-08-01')

输出

8

-date_sub

语法为date_sub (string startdate, interval int day) ,返回开始日期startdate减少

days天后的日期。

select
date_sub('2021-08–09',interval 8 day)

输出

‘2021-08-01'

-date_add

语法为date_add(string startdate, interval int day) ,返回开始日期startdate增加days天后的日期

select
date_add('2021-08–01',interval 8 day)

输出

‘2021-08-09'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值