2.2_1 postgreSQL 日期函数 Extract

本文介绍了PostgreSQL日期函数Extract,它属于SQL的DML函数,用于从日期或时间型字段抽取年、月、日等数据,支持YEAR、MONTH等关键字。还说明了其使用语法,以及在数据表中生成含日期和序列号关键字段的方法,FROM后也支持CURREND_TIMESTAMP等。

相关链接


postgreSQL 日期函数 Extract

  Extract 函数的使用

  Extract 属于 SQL 的 DML(即数据库管理语言)函数,同样,InterBase 也支持 Extract,它主要用于从一个日期或时间型的字段内抽取年、月、日、时、分、秒数据,因此,它支持其关健字 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、WEEKDAY、YEARDAY。

  Extract 的使用语法为:EXTRACT(关健字 FROM 日期或时间型字段)

语法说明

例如:我们想从一个入库表(RK)"入库时间(INTIME)"(此入库时间为 TIMESTAMP 型)字段内提取相应的时间数据。有如下形式:

SELECT EXTRACT(YEAR FROM INTIME) FROM RK 从INTIME字段中提取年份
SELECT EXTRACT(MONTH FROM INTIME) FROM RK 从INTIME字段中提取月份
SELECT EXTRACT(DAY FROM INTIME) FROM RK 从INTIME字段中提取日
SELECT EXTRACT(HOUR FROM INTIME) FROM RK 从INTIME字段中提取时
SELECT EXTRACT(MINUTE FROM INTIME) FROM RK 从INTIME字段中提取分
SELECT EXTRACT(SECOND FROM INTIME) FROM RK 从INTIME字段中提取秒

  假如我们想在一个数据表中生成一个含有发生日期及序列号的关健字段。这种情况在很多数据库应用中都会发生。

  首先,我们应先定义一个 Generator,取名为 AUTOID,然后在相应的表中书写触发器,形式如下:

CREATE TRIGGER "TRI_BI_AUTOID" FOR "TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.PBID=CAST(EXTRACT(YEAR FROM CAST('NOW' AS DATE)) AS VARCHAR(4))||
CAST(EXTRACT(MONTH FROM CAST('NOW' AS DATE)) AS VARCHAR(2))||
CAST(EXTRACT(DAY FROM CAST('NOW' AS DATE)) AS VARCHAR(2))||
CAST(GEN_ID(AUTOID,1) AS VARCHAR(12));
END

  这样,一个能自动以日期及序列号为代码的字段数据就产生了。当然 FROM 后面也支持:CURREND_TIMESTAMP、CURREND_DATE、CURREND_TIME等。

PostgreSQL 提供了许多用于处理日期和时间的函数。其中一些函数根据当前事务的开始时刻返回结果,比如CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP、LOCALTIME、LOCALTIMESTAMP、now()和transaction_timestamp()。 此外,PostgreSQL 还提供了一些用于格式化数据类型的函数,包括日期/时间、整数、浮点数和小数。例如,to_char函数可以将时间戳、时间间隔、整数、双精度数和小数转换为指定格式的字符串。to_date函数可以将字符串转换为日期,to_timestamp函数可以将字符串转换为时间戳,to_number函数可以将字符串转换为数字。这些函数都有一个公共的调用习惯:第一个参数是待格式化或转换的值,而第二个参数是用于定义输出或输入格式的模板。 举例来说,to_char函数可以将时间戳转换为字符串,如to_char(current_timestamp, 'HH12:MI:SS')。to_char函数还可以将时间间隔、整数、浮点数和小数转换为字符串。to_date函数可以将字符串转换为日期,如to_date('05 Dec 2000', 'DD Mon YYYY')。to_timestamp函数可以将字符串转换为时间戳,如to_timestamp('05 Dec 2000', 'DD Mon YYYY')。to_number函数可以将字符串转换为数字,如to_number('12,454.8-', '99G999D9S')。 总之,PostgreSQL 提供了丰富的日期和时间函数以及数据类型格式化函数,可以满足各种处理日期和时间的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [PostgreSQL日期/时间函数(兼容oracle)](https://download.csdn.net/download/weixin_38499553/13684201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [PostgreSQL时间格式及相关函数实践](https://blog.csdn.net/dimawei2225/article/details/102041771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值