postgresql-常用时间相互转化

本文介绍了使用SQL进行日期和时间的操作方法,包括获取当前日期、时间、格式化时间、计算过去的时间点等实用技巧。通过这些技巧,可以更加高效地管理和查询数据库中的时间相关数据。

1、获取当前时间(年月日)

SELECT CURRENT_DATE;

-- 获取昨天

SELECT CURRENT_DATE - 1;

2、获取当前时间(年月日时分秒)

SELECT NOW();

3、获取当前年月, 转化为字符串

SELECT to_char(CURRENT_DATE, 'YYYY-MM') ;

4、获取当前年, 转化为字符串

-- postsql:
SELECT to_char(CURRENT_DATE, 'YYYY') ;
-- mysql:
SELECT DATE_FORMAT(now(),'%Y-%m-%d');

5、格式化时间 ,字符串转化时间

SELECT to_date('2021-03-17 18:00:00' , 'YYYY-MM-DD') ;

6、获取上一年

SELECT to_char((now() + '-1 year'),'YYYY-MM');
SELECT to_char((now() + '-1 year'),'YYYY-MM-DD');

7、获取上一个月 

SELECT to_char((now() + '-1 mons'),'YYYY-MM');
SELECT to_char((now() + '-1 mons'),'YYYY-MM-DD');

8、获取上一周

SELECT to_char((now() + '-1 week'),'YYYY-MM-DD');

9、时间格式化(年月日 时分秒)

SELECT to_timestamp(concat(CURRENT_DATE, ' 10:00:00'), 'YYYY-MM-DD hh24:mi:ss')

10、case .... when 

SELECT case when 0=0 then 0 else 1/0 end  as x;
SELECT case when 1=0 then 0 else 1/1 end  as x;

### PostgreSQL 中的日期截取 在 PostgreSQL 中,`EXTRACT` 函数用于从给定的时间戳或间隔中提取特定部分。支持多种时间单位作为参数,如 `YEAR`, `MONTH`, `DAY`, `HOUR`, `MINUTE`, 和 `SECOND`。 例如,为了获取当前日期中的年份: ```sql SELECT EXTRACT(YEAR FROM CURRENT_DATE); ``` 对于更复杂的场景,比如计算两个时间点之间的差异,可以利用 `AGE` 或者简单的减法操作来获得一个区间对象,再通过 `EXTRACT` 获取所需的组件[^1]。 ### 类型转换方法 当涉及到不同类型之间相互转化时,PostgreSQL 提供了一系列内置函数帮助完成此任务。特别是处理字符串到时间戳以及相反方向的变化,常用的是 `TO_TIMESTAMP` 和 `TO_CHAR` 这样的工具。 假设有一个表示时间为 `'HH24:MI:SS'` 格式的字符序列,并希望将其转变为实际可用的时间戳,则可以通过如下方式实现: ```sql SELECT TO_TIMESTAMP('18:30:45', 'HH24:MI:SS'); ``` 如果需要反过来把时间戳格式化成指定样式的字符串输出,那么应该采用 `TO_CHAR` 方法: ```sql SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS'); ``` 此外,在某些情况下可能还会遇到 JSONB 数据类型的解析需求。此时可以直接访问键路径以取得相应的值,而无需先做任何额外的数据类型变换工作[^2]。 ### 多级时间截取及格式化 针对更加精细的需求,如按不同级别(年度、季度、月份等)对数据进行分组统计或是呈现友好阅读形式的结果集,编写自定义存储过程不失为一种有效手段。这类程序能够接受灵活多变的时间粒度选项并返回经过适当调整后的记录列表[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值