最佳体验请使用Chrome67及以上版本、火狐、Edge、Safari浏览器 ×

创建银行
创建开票

    PostgreSQL | EXTRACT / DATE_PART | 获取时间的年月日等字串

    编者:杨博@勾股弦数据 阅读95 来源: CSDN 2024/10/28 09:56:09 文章 外链 公开

    extract

    EXTRACT 函数是 PostgreSQL 中用于从日期和时间类型中提取特定部分(如年、月、日、小时等)的函数。

    格式

    EXTRACT(field FROM source)

    -- field 参数是要提取的部分,例如 YEAR、MONTH、DAY、HOUR 等。-- source 参数是包含日期或时间的表达式。

    示例

    例如,要从当前日期时间中提取年\月\日\,可以使用以下查询:

    SELECT 
    	EXTRACT(YEAR FROM CURRENT_TIMESTAMP) 	AS current_year,
    	EXTRACT(MONTH FROM CURRENT_TIMESTAMP) 	AS current_month,
    	EXTRACT(DAY FROM CURRENT_TIMESTAMP) 	AS current_day,
    	EXTRACT(HOUR FROM CURRENT_TIMESTAMP) 	AS current_hour;

    在这里插入图片描述

    扩展

    上述field位置可以开可以使用如下参数:

    century:世纪year:年份
    decade:年份/10month:月份day:本月第几天hour:时间中的小时minute:时间中的分钟second:时间中的秒
    microseconds:时间中的毫秒
    milliseconds:时间中的微妙
    week:返回当前日期在当年的周次数
    dow:一周中的星期几(以西方时间计算周日为0)
    doy:本年的第几天
    epoch:自1979-01-01 00:00:00 以来的秒数
    isodow:一周中的星期几(周一为1 - 周日为7)
    isoyear:日期所在的 ISO 8601 周编号年份
    timezone:与UTC的时间偏移量,返回偏移量秒数
    timezone_hour:与UTC的时间偏移量,返回偏移量小时
    timezone_minute`:与UTC的时间偏移量,返回偏移量分钟

    timezone的测试可以使用:

    -- 查询时区show timezone;
    -- 临时变更时区set time zone 'UTC';set time zone '+16';set time zone '+16:30';
    -- 变更后可以测试 timezone, timezone_hour, timezone_minute 的效果。select extract(timezone_minute from now());

    在这里插入图片描述
    在这里插入图片描述

    date_part(‘field’, timestamp)

    格式

    date_part与extract功能一致,只是使用方式采用 date_part(‘field’, timestamp) 方式,而extract使用extract(field from timestamp) 格式,field枚举列表与上述一致,感兴趣可以实操试试。
    在这里插入图片描述


    如果想获取2024-10-28 10:00:00与之前的某个特定时间比如2024-10-28 00:00:00的时间差的总秒数, 一个想当然的方法是:

    select extract(second from ('2024-10-28 10:00:00'::timestamptz-'2024-10-28 00:00:00'::timestamptz))

    得到的结果是0, 很明显是错误的, 正确的方式是:

    select extract(epoch from ('2024-10-28 10:00:00'::timestamptz-'2024-10-28 00:00:00'::timestamptz)) --返回正确的结果: 36000秒

    声明:本网站部分内容来源于网络,版权归原权利人所有,其观点不代表本网站立场;本网站视频或图片制作权归当前商户及其作者,涉及未经授权的制作均须标记“样稿”。如内容侵犯了您相关权利,请及时通过邮箱service@ichub.com与我们联系。
     0  0

    微信扫一扫:分享

    微信里点“+”,扫一扫二维码

    便可将本文分享至朋友圈。

      
    
    
    分享
     0
      验证