oracle一個(gè)月怎么寫 oracle取每個(gè)月第一天

oracle查詢一個(gè)月固定時(shí)刻的數(shù)據(jù)

-- 2個(gè)字段

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供湘西土家族網(wǎng)站建設(shè)、湘西土家族做網(wǎng)站、湘西土家族網(wǎng)站設(shè)計(jì)、湘西土家族網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、湘西土家族企業(yè)網(wǎng)站模板建站服務(wù),十多年湘西土家族做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

-- 處理日期時(shí)間, 處理結(jié)果。

CREATE TABLE temp(

process_date DATE,

result_val INT

);

-- 測(cè)試數(shù)據(jù)

-- 計(jì)劃是查詢 每天的 12:00 的數(shù)據(jù)

-- 主要的測(cè)試數(shù)據(jù),在 6月3日-6月5日 期間

-- 6月3日的數(shù)據(jù),為一個(gè)當(dāng)日 小于 12:00 的數(shù)據(jù)。

-- 6月4日的數(shù)據(jù),為一個(gè)當(dāng)日 大于 12:00 的數(shù)據(jù)。

-- 6月5日的數(shù)據(jù),為兩個(gè)當(dāng)日 大于/小于 12:00 的數(shù)據(jù)。

-- 6月6日的數(shù)據(jù),為多個(gè)當(dāng)日 隨便填寫的 數(shù)據(jù)。

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點(diǎn)的時(shí)間"

FROM

temp

) myTmp

WHERE

myTmp.process_date = myTmp."最接近12點(diǎn)的時(shí)間"

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行。

注:那個(gè)當(dāng)天12:00的算法為

(TRUNC(process_date) + 1/2)

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

oracle 一個(gè)月每天剔重累計(jì)客戶數(shù)怎么寫

select *

from 客戶表 a

where rowid not in ( select max(rowid)

from 客戶表 b

group by 客戶名)

oracle編寫存儲(chǔ)過程計(jì)算一個(gè)月的數(shù)據(jù)

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

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

這樣就可以了。

oracle中修改當(dāng)前時(shí)間,使之當(dāng)前時(shí)間增加一個(gè)月。語(yǔ)句如何寫??

使用函數(shù) add_months

add_months(time,months) months為整數(shù),正數(shù)時(shí)是加月,負(fù)數(shù)時(shí)為減月。

UPDATE TABLE ASET LOCALTIME=add_months(LocalTime, 1)

用 oracle 寫一個(gè) sql語(yǔ)句 查詢上一個(gè)月的最大日期,

首先獲取本月第一點(diǎn)trunc(sysdate,'mm');這個(gè)是獲取本月第一天的時(shí)間,然后-1就是上個(gè)月最后一天,然后輸出日期to_char(date,'DD');

最后SQL

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

網(wǎng)站題目:oracle一個(gè)月怎么寫 oracle取每個(gè)月第一天
文章網(wǎng)址:http://muchs.cn/article4/hjdooe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、外貿(mào)建站、虛擬主機(jī)、服務(wù)器托管手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站