暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

postgresql 常见日期函数及使用例子

原创 鲁鲁 2024-10-02
1250

PostgreSQL提供了丰富的日期和时间函数,用于处理和操作日期和时间数据。以下是一些常见的日期函数及其使用示例:

1. 获取当前日期和时间

  • CURRENT_DATE:返回当前日期(不含时间)。
  • CURRENT_TIME:返回当前时间(不含日期)。
  • CURRENT_TIMESTAMPNOW():返回当前日期和时间。
SELECT CURRENT_DATE; -- 结果示例: '2024-10-01' SELECT CURRENT_TIME; -- 结果示例: '12:34:56' SELECT CURRENT_TIMESTAMP; -- 结果示例: '2024-10-01 12:34:56.789' SELECT NOW(); -- 结果示例: '2024-10-01 12:34:56.789'

2. 日期加减

  • DATE + INTERVAL:对日期或时间进行加法操作。
  • DATE - INTERVAL:对日期或时间进行减法操作。
-- 增加7天 SELECT CURRENT_DATE + INTERVAL '7 days'; -- '2024-10-08' -- 减少2个月 SELECT CURRENT_DATE - INTERVAL '2 months'; -- '2024-08-01'

3. 计算日期差

  • AGE():计算两个日期之间的间隔,返回年、月、日。
  • DATE1 - DATE2:直接减法返回天数差。
-- 计算两个日期之间的差异(年、月、日) SELECT AGE('2024-10-01', '2020-06-15'); -- '4 years 3 mons 16 days' -- 计算天数差 SELECT '2024-10-01'::date - '2020-06-15'::date; -- 1204 天

4. 提取日期部分

  • EXTRACT():从日期或时间中提取年、月、日、小时等部分。
  • DATE_PART():功能类似于 EXTRACT(),但它的参数顺序不同。
-- 提取年份 SELECT EXTRACT(YEAR FROM CURRENT_DATE); -- 2024 -- 提取月份 SELECT EXTRACT(MONTH FROM CURRENT_DATE); -- 10 -- 提取星期几 (1代表星期一,7代表星期日) SELECT EXTRACT(DOW FROM CURRENT_DATE); -- 2 (如果今天是星期二) -- 使用 DATE_PART SELECT DATE_PART('hour', CURRENT_TIMESTAMP); -- 提取当前小时

5. 格式化日期

  • TO_CHAR():将日期或时间转换为指定的字符串格式。
-- 格式化日期为字符串 SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD'); -- '2024-10-01' -- 格式化日期为更具体的格式 SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS'); -- '2024-10-01 12:34:56' -- 显示月份名称 SELECT TO_CHAR(NOW(), 'Month'); -- 'October'

6. 日期截断

  • DATE_TRUNC():将日期截断到指定的精度(如年、月、日、小时等)。
-- 截断到月 SELECT DATE_TRUNC('month', NOW()); -- '2024-10-01 00:00:00' -- 截断到年 SELECT DATE_TRUNC('year', NOW()); -- '2024-01-01 00:00:00' -- 截断到日 SELECT DATE_TRUNC('day', NOW()); -- '2024-10-01 00:00:00'

7. 日期比较

  • ><=:日期可以通过常规的比较操作符进行比较。
-- 判断某日期是否在今天之前 SELECT '2024-09-30'::date < CURRENT_DATE; -- true -- 判断某日期是否在未来 SELECT '2024-11-01'::date > CURRENT_DATE; -- true

8. 日期生成

  • MAKE_DATE():从年、月、日生成日期。
  • MAKE_TIMESTAMP():从年、月、日、时、分、秒生成时间戳。
-- 生成日期 SELECT MAKE_DATE(2024, 10, 1); -- '2024-10-01' -- 生成时间戳 SELECT MAKE_TIMESTAMP(2024, 10, 1, 12, 30, 45); -- '2024-10-01 12:30:45'

9. 其他常用函数

  • ISFINITE():判断日期是否有限(即是否是 infinity-infinity)。
-- 判断日期是否是一个有限值 SELECT ISFINITE('2024-10-01'::date); -- true SELECT ISFINITE('infinity'::timestamp); -- false

这些日期函数在PostgreSQL中提供了强大的日期和时间处理能力,适用于各种应用场景,例如数据分析、报表生成和业务系统中的时间处理。


产品简介

  • 梧桐数据库(WuTongDB)是基于 Apache HAWQ 打造的一款分布式 OLAP 数据库。产品通过存算分离架构提供高可用、高可靠、高扩展能力,实现了向量化计算引擎提供极速数据分析能力,通过多异构存储关联查询实现湖仓融合能力,可以帮助企业用户轻松构建核心数仓和湖仓一体数据平台。
  • 2023年6月,梧桐数据库(WuTongDB)产品通过信通院可信数据库分布式分析型数据库基础能力测评,在基础能力、运维能力、兼容性、安全性、高可用、高扩展方面获得认可。

点击访问:
梧桐数据库(WuTongDB)相关文章
梧桐数据库(WuTongDB)产品宣传材料
梧桐数据库(WuTongDB)百科

最后修改时间:2024-10-06 15:47:14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论