一步搞定: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查询出当天、当小时、当月的数据都很方便,一步搞定,极大提高了工作效率。