一步搞定:Oracle中取当天数据的技巧(oracle取当天数据)

使用Oracle从表中读取当天的数据是比较常见的操作,但这种操作由于在复杂的SQL查询中,很多人都不太熟悉,今天就介绍一种技巧,可以帮助用户快速取出当天的数据。

取当天数据,我们可以使用Trunc函数,语法如下:TRUNC(field_name,’DD’). 这样,就可以把一个字段的值从全日期截取一下当天的部分,用于查询,下面的SQL代码查询了表 “TABLE_NAME” 中从今天开始的前7天的数据(及当天):

SELECT *

FROM TABLE_NAME

WHERE TRUNC(field_name, ‘DD’) >= TRUNC(SYSDATE – 7, ‘DD’);

在上面的SQL语句中,我们使用的函数是TRUNC和SYSDATE。

TRUNC函数可以将日期、时间或者某个字段转换为其参数指定的精度,比如“DD”为一天,“MM”为一个月,“YYYY”为一年,也可以根据自己的需要设置参数。

SYSDATE函数可以返回当前时间,这里我们将其用作对比,表示要查询的起始日期。

我们可以使用SYS_EXTRACT_UTC函数来取本地的小时,比如,下面的SQL语句查询了从11:00开始的当天的数据。

SELECT *

FROM

TABLE_NAME

WHERE

TRUNC(field_name, ‘DD’) = TRUNC(sysdate, ‘DD’)

AND EXTRACT (HOUR FROM field_name) >= 11;

当然,我们也可以使用ORACLE的内置函数CURRENT_TIMESTAMP来代替SYSDATE. 下面的语句取出当前时间30分钟前的所有数据:

SELECT *

FROM

TABLE_NAME

WHERE field_name > CURRENT_TIMESTAMP – INTERVAL ’30’ MINUTE;

以上就是Oracle中取当天数据技巧,诸如TRUNC,SYSDATE,EXTRACT,CURRENT_TIMESTAMP等函数,搭配表达式SQL查询出当天、当小时、当月的数据都很方便,一步搞定,极大提高了工作效率。


数据运维技术 » 一步搞定:Oracle中取当天数据的技巧(oracle取当天数据)