oracle一个月怎么写 oracle取每个月第一天

oracle查询一个月固定时刻的数据

-- 2个字段

成都创新互联专业为企业提供湘西土家族网站建设、湘西土家族做网站、湘西土家族网站设计、湘西土家族网站制作等企业网站建设、网页设计与制作、湘西土家族企业网站模板建站服务,十多年湘西土家族做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

-- 处理日期时间, 处理结果。

CREATE TABLE temp(

process_date DATE,

result_val INT

);

-- 测试数据

-- 计划是查询 每天的 12:00 的数据

-- 主要的测试数据,在 6月3日-6月5日 期间

-- 6月3日的数据,为一个当日 小于 12:00 的数据。

-- 6月4日的数据,为一个当日 大于 12:00 的数据。

-- 6月5日的数据,为两个当日 大于/小于 12:00 的数据。

-- 6月6日的数据,为多个当日 随便填写的 数据。

INSERT INTO temp

SELECT TO_DATE('2011-06-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS'), 100 FROM dual UNION ALL

SELECT TO_DATE('2011-06-02 12:00:00', 'YYYY-MM-DD HH24:MI:SS'), 100 FROM dual UNION ALL

SELECT TO_DATE('2011-06-03 06:00:00', 'YYYY-MM-DD HH24:MI:SS'), 106 FROM dual UNION ALL

SELECT TO_DATE('2011-06-04 18:00:00', 'YYYY-MM-DD HH24:MI:SS'), 118 FROM dual UNION ALL

SELECT TO_DATE('2011-06-05 11:00:00', 'YYYY-MM-DD HH24:MI:SS'), 111 FROM dual UNION ALL

SELECT TO_DATE('2011-06-05 12:59:59', 'YYYY-MM-DD HH24:MI:SS'), 113 FROM dual UNION ALL

SELECT TO_DATE('2011-06-06 10:00:00', 'YYYY-MM-DD HH24:MI:SS'), 210 FROM dual UNION ALL

SELECT TO_DATE('2011-06-06 11:00:05', 'YYYY-MM-DD HH24:MI:SS'), 211 FROM dual UNION ALL

SELECT TO_DATE('2011-06-06 13:00:00', 'YYYY-MM-DD HH24:MI:SS'), 213 FROM dual UNION ALL

SELECT TO_DATE('2011-06-06 15:00:00', 'YYYY-MM-DD HH24:MI:SS'), 215 FROM dual;

ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';

SELECT

process_date,

result_val

FROM

(

SELECT

process_date,

result_val,

MIN(process_date)

KEEP (DENSE_RANK FIRST ORDER BY ABS((process_date - (TRUNC(process_date) + 1/2))) )

OVER (PARTITION BY TO_CHAR(process_date, 'YYYY-MM-DD')) AS "最接近12点的时间"

FROM

temp

) myTmp

WHERE

myTmp.process_date = myTmp."最接近12点的时间"

PROCESS_DATE RESULT_VAL

------------------- ----------

2011-06-01 12:00:00 100

2011-06-02 12:00:00 100

2011-06-03 06:00:00 106

2011-06-04 18:00:00 118

2011-06-05 12:59:59 113

2011-06-06 11:00:05 211

已选择6行。

注:那个当天12:00的算法为

(TRUNC(process_date) + 1/2)

也就是把日期后面时分秒都清零,最后加上 1/2 天。也就是 12:00

oracle 一个月每天剔重累计客户数怎么写

select *

from 客户表 a

where rowid not in ( select max(rowid)

from 客户表 b

group by 客户名)

oracle编写存储过程计算一个月的数据

假如你的表是table (trx_date date, value number);

select trx_date,value-lead(value) over (order by trx_date desc) from table.

这样就可以了。

oracle中修改当前时间,使之当前时间增加一个月。语句如何写??

使用函数 add_months

add_months(time,months) months为整数,正数时是加月,负数时为减月。

UPDATE TABLE ASET LOCALTIME=add_months(LocalTime, 1)

用 oracle 写一个 sql语句 查询上一个月的最大日期,

首先获取本月第一点trunc(sysdate,'mm');这个是获取本月第一天的时间,然后-1就是上个月最后一天,然后输出日期to_char(date,'DD');

最后SQL

select to_char(trunc(sysdate,'mm')-1,'DD') from dual;


名称栏目:oracle一个月怎么写 oracle取每个月第一天
网站地址:http://bzwzjz.com/article/hjdooe.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 定制网站建设 上市集团网站建设 成都网站建设 泸州网站建设 定制网站设计 重庆网站设计 手机网站制作 成都网站制作公司 成都网站设计 成都网站设计公司 重庆手机网站建设 企业网站制作 企业网站设计 营销型网站建设 古蔺网站建设 定制网站设计 网站建设推广 营销型网站建设 重庆网站建设 成都网站建设 网站建设方案 成都品牌网站设计