postgreSQL 日期函数 Extract

Extract 函数的使用

 

以前我在 InterBase 论坛里谈到过 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等。

 

 

欢迎转载,但请保留出处,本文章转自[华软网] 原文链接:http://www.huarw.com/db/InterBase/200512/17797.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值