PostgreSQL提供了丰富的日期和时间函数,用于处理和操作日期和时间数据。以下是一些常见的日期函数及其使用示例:
1. 获取当前日期和时间
CURRENT_DATE:返回当前日期(不含时间)。CURRENT_TIME:返回当前时间(不含日期)。CURRENT_TIMESTAMP或NOW():返回当前日期和时间。
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




