sql 计算两个日期差几天
Posted bitcarmanlee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于sql 计算两个日期差几天的主要内容,如果未能解决你的问题,请参考以下文章