sql 计算两个日期差几天

有段时间没写sql,正好今天要处理个比较复杂的业务问题,需要写sql,里面碰到几个小点,还有点记得不是太清楚,稍微想了一阵才写出来,特此记录,方便后续查询。

其中有一个环节,需要计算两个日期差几天,经过一番思考,可以按如下方式进行计算。

1.unix_timestamp 字符串转时间戳

首先用unix_timestamp方法,将字符串转成时间戳。

select unix_timestamp('20221020', 'yyyyMMdd') from xxx limit 1;

输出结果为

1666195200

2.from_unixtime 时间戳转指定格式日期字符串

接下来我们使用from_unixtime方法将时间戳转成指定格式的日期字符串

select from_unixtime(unix_timestamp('20221020', 'yyyyMMdd'), 'yyyy-MM-dd') from xxx limit 1;

输出结果为

2022-10-20

3.to_date转成日期

select to_date(from_unixtime(unix_timestamp('20221020', 'yyyyMMdd'), 'yyyy-MM-dd')) from xxx limit 1;

输出结果为

2022-10-20

4.datediff方法求两个日期差几天

最后,我们使用datediff方法,可以求出两个日期差几天。

select datediff(to_date(from_unixtime(unix_timestamp('20221020', 'yyyyMMdd'), 'yyyy-MM-dd')),  to_date(from_unixtime(unix_timestamp('20220920', 'yyyyMMdd'), 'yyyy-MM-dd'))) from xxx limit 1;

输出结果为

30
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值