當月跟上個月的人事資料該如何抓取出來 |
答題得分者是:TWY
|
qq33252000
一般會員 發表:12 回覆:21 積分:6 註冊:2010-07-03 發送簡訊給我 |
|
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
請問您翻書、爬文了嗎??
===================引 用 qq33252000 文 章=================== 資料庫oracle SQL中 該如何抓取當月(比如說這個月是9月)和上個月(八月份),新進人員的資料 select * form people where (date_no = (這裡怎麼需要怎麼饡寫??)) |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
date_no 若為 VARCHAR2 存 'yyyy/mm' 則 date_no = '2010/08' OR date_no = '2010/09' 或 date_no IN (''2010/08','2010/09')
date_no 若為 DATETIME 則 TO_CHAR(date_no,'yyyy/mm') IN ('2010/08','2010/09') 下次記得也要提出 Table 之 Column 之 Type,且此問題真的太『基本』了!
編輯記錄
herbert2 重新編輯於 2010-09-28 14:45:23, 註解 無‧
|
qq33252000
一般會員 發表:12 回覆:21 積分:6 註冊:2010-07-03 發送簡訊給我 |
不好意思~我問題說的不是很明白
的確這樣看下去~問題真的太基本的@@ 可我要問的不是這個意思 我今天要去抓系統時間(sysdate) 但是我只要他的日期(YYYYMMDD) 如果今天的日期是'20100911'就抓出'20100801~20100911'的資料出來 我看了您的寫法~~ TO_CHAR(date_no,'yyyy/mm') IN ('2010/08','2010/09')→這樣的寫法不就把他寫死了?? 那今天是10月部就又要再改一次SQL指令??? 有沒有可以讓他自己抓系統時間,去判別上個月到這個月 我有網查一些 "SELECT YEAR(ADD_MONTHS(日期,-1)) AS y, MOHTH(ADD_MONTHS(日期,-1))" 但這樣的寫法是呼也把他給寫死了~他的日期,我希望是系統自己抓時間,並不是我們自己輸入入期定死在那 ===================引 用 herbert2 文 章=================== date_no 若為 VARCHAR2 存 'yyyy/mm' 則 date_no = '2010/08' OR date_no = '2010/09' 或 date_no IN (''2010/08','2010/09') date_no 若為 DATETIME 則 TO_CHAR(date_no,'yyyy/mm') IN ('2010/08','2010/09') 下次記得也要提出 Table 之 Column 之 Type,且此問題真的太『基本』了! |
qq33252000
一般會員 發表:12 回覆:21 積分:6 註冊:2010-07-03 發送簡訊給我 |
不好意思~我想我的問題沒有說的很清楚~
或許就算說的很清楚,對您來說也是比較簡單的 但對新手來說,希望給個機會學習..謝謝您的指導 ===================引 用 老大仔 文 章=================== 請問您翻書、爬文了嗎?? ===================引 用 qq33252000 文 章=================== 資料庫oracle SQL中 該如何抓取當月(比如說這個月是9月)和上個月(八月份),新進人員的資料 select * form people where (date_no = (這裡怎麼需要怎麼饡寫??)) |
kuf41
中階會員 發表:14 回覆:45 積分:51 註冊:2006-12-03 發送簡訊給我 |
|
TWY
高階會員 發表:2 回覆:133 積分:152 註冊:2009-09-02 發送簡訊給我 |
我猜想,你的困擾關鍵應該在於 Oracle add_months 這個指令吧,下面語法或許可以解決你的問題,請參考。
(假設 sysdate 是 2010/09/29 則會選出 2010/08/01~2010/09/29 的資料) select * from YourTable where EnterDate between to_date(to_char(add_months(sysdate,-1),'YYYYMM')||'01','YYYYMMDD') and trunc(sysdate) ===================引 用 qq33252000 文 章=================== 我看了您的寫法~~ TO_CHAR(date_no,'yyyy/mm') IN ('2010/08','2010/09')→這樣的寫法不就把他寫死了?? 那今天是10月部就又要再改一次SQL指令??? |
senso
高階會員 發表:5 回覆:126 積分:226 註冊:2003-11-27 發送簡訊給我 |
http://www.techonthenet.com/oracle/functions/
參考Date Functions:稍微排列一下就能取得各種日期了 select * from people where date_no between to_char(add_month(trunc(sysdate,'mm'),-1),'yyyymmdd') and to_char(sysdate,'yyyymmdd'); |
tobylin
一般會員 發表:1 回覆:15 積分:18 註冊:2009-12-25 發送簡訊給我 |
|
TWY
高階會員 發表:2 回覆:133 積分:152 註冊:2009-09-02 發送簡訊給我 |
這個網站不錯耶,整理的很詳細,找個時間複習一下,謝謝分享~
===================引 用 senso 文 章=================== http://www.techonthenet.com/oracle/functions/ 參考Date Functions:稍微排列一下就能取得各種日期了 select * from people where date_no between to_char(add_month(trunc(sysdate,'mm'),-1),'yyyymmdd') and to_char(sysdate,'yyyymmdd'); |
qq33252000
一般會員 發表:12 回覆:21 積分:6 註冊:2010-07-03 發送簡訊給我 |
謝謝你的分享
這個網站真的不錯~我要抓走了 感激不進 ===================引 用 senso 文 章=================== http://www.techonthenet.com/oracle/functions/ 參考Date Functions:稍微排列一下就能取得各種日期了 select * from people where date_no between to_char(add_month(trunc(sysdate,'mm'),-1),'yyyymmdd') and to_char(sysdate,'yyyymmdd'); |
qq33252000
一般會員 發表:12 回覆:21 積分:6 註冊:2010-07-03 發送簡訊給我 |
恩恩~
我卡在add_months跟SYSdate 因為當時抓出來還包含了時間 因此卡很久~ 謝謝您,解開我的疑問 ===================引 用 TWY 文 章=================== 我猜想,你的困擾關鍵應該在於 Oracle add_months 這個指令吧,下面語法或許可以解決你的問題,請參考。 (假設 sysdate 是 2010/09/29 則會選出 2010/08/01~2010/09/29 的資料) select * from YourTable where EnterDate between to_date(to_char(add_months(sysdate,-1),'YYYYMM')||'01','YYYYMMDD') and trunc(sysdate) |
senso
高階會員 發表:5 回覆:126 積分:226 註冊:2003-11-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |