PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
黑狗弟
Elite Member
 
黑狗弟的大頭照
 

加入日期: Jan 2000
您的住址: 噗噗噗噗
文章: 4,489
Unhappy Oracle SQL 高手請進...

請問一下...

如果我有一個 Table 裡有行 Date 像這樣

'17/10/2002', 'dd/mm/yyyy' (當然 Table 裡還有很多列的 Date)

那我現在要做 query..

要找出這個 Date 離今天(以 2003年六月一號 01/06/2003)

超過 365 天.. 或者 730 的 Date...

我因該怎麼打??!!??

先謝謝了...

現在在學校 的 Lab 裡打的頭快爆了...

還是想不出來..
     
      
__________________

你們都是我的心肝寶貝呀..
舊 2003-06-02, 04:26 PM #1
回應時引用此文章
黑狗弟離線中  
JYHuang
Senior Member
 
JYHuang的大頭照
 

加入日期: Oct 2000
您的住址: 七股in台南
文章: 1,437
回覆: Oracle SQL 高手請進...

引用:
Originally posted by 黑狗弟
請問一下...

如果我有一個 Table 裡有行 Date 像這樣

'17/10/2002', 'dd/mm/yyyy' (當然 Table 裡還有很多列的 Date)

那我現在要做 query..

要找出這個 Date 離今天(以 2003年六月一號 01/06/2003)

超過 365 天.. 或者 730 的 Date...

我因該怎麼打??!!??

先謝謝了...

現在在學校 的 Lab 裡打的頭快爆了...

還是想不出來..


你把日期存成文字資料當然想不出來

把日期存成數值....要顯示時再用函數來換算啦......
 
__________________
舊 2003-06-02, 04:53 PM #2
回應時引用此文章
JYHuang離線中  
黑狗弟
Elite Member
 
黑狗弟的大頭照
 

加入日期: Jan 2000
您的住址: 噗噗噗噗
文章: 4,489
回覆: 回覆: Oracle SQL 高手請進...

引用:
Originally posted by JYHuang
你把日期存成文字資料當然想不出來

把日期存成數值....要顯示時再用函數來換算啦......


好像有點董... 又不時很董...

剛剛突然發現....

老師陰我們...

table 裡面的 date 輸入方式是像這樣...

sysdate - 125

剛剛被我弄出來了...

select * from testlog where testlog.Test_Date < SYSDATE-365;

這題想了兩小時...

謝謝... JYHuang ..

你一說.. 我回去看SQL 才知道..

不過這題還沒完...
__________________

你們都是我的心肝寶貝呀..

此文章於 2003-06-02 05:24 PM 被 黑狗弟 編輯.
舊 2003-06-02, 05:11 PM #3
回應時引用此文章
黑狗弟離線中  
JYHuang
Senior Member
 
JYHuang的大頭照
 

加入日期: Oct 2000
您的住址: 七股in台南
文章: 1,437
回覆: 回覆: 回覆: Oracle SQL 高手請進...

引用:
Originally posted by 黑狗弟
好像有點董... 又不時很董...

剛剛突然發現....

老師陰我們...

table 裡面的 date 輸入方式是像這樣...

sysdate - 125

剛剛被我弄出來了...

select * from testlog where testlog.Test_Date < SYSDATE-365;

這題想了兩小時...

謝謝... JYHuang ..

你一說.. 我回去看SQL 才知道..


還有...我沒用過Oracle SQL,我只會MySql
各家SQL的結構和句型都差不多....

你標題說會SQL的人就好了...
__________________
舊 2003-06-02, 05:26 PM #4
回應時引用此文章
JYHuang離線中  
黑狗弟
Elite Member
 
黑狗弟的大頭照
 

加入日期: Jan 2000
您的住址: 噗噗噗噗
文章: 4,489
wherever.....

我在這頭想的快爆了...

旁邊一個香港痞子在泡妹妹...

天呀... 好吵呀...
__________________

你們都是我的心肝寶貝呀..
舊 2003-06-02, 05:36 PM #5
回應時引用此文章
黑狗弟離線中  
xmx
Junior Member
 
xmx的大頭照
 

加入日期: Apr 2001
您的住址: 新竹↘台中↗
文章: 965
回覆: Oracle SQL 高手請進...

引用:
Originally posted by 黑狗弟

要找出這個 Date 離今天(以 2003年六月一號 01/06/2003)

超過 365 天.. 或者 730 的 Date...



你是指超過 365 天 or 超過 730 天嗎?
有點怪怪的條件…

如果是照你上述所說…
那 sql 大概是長這樣子吧…

select * from table
where (trunc(column) < trunc(sysdate-365)
or trunc(column) < trunc(sysdate-730));


如果是介於超過 -730天 and 未滿 -365天的話…

select * from table
where trunc(column) between trunc(sysdate-729) and trunc(sysdate-366);

ps. 以上全部以日期來計算、不考慮時間…
__________________
我們遇上的狀況可能很可怕或者避不過,可是人永遠都能選擇——如果不能選擇要不要承受,至少能選擇如何處之。
如何輕便的禦寒~ 如何輕便的禦寒2004~ 如何輕便的禦寒2005~ 幫忙推薦個好動畫~ 各位對腳踏車有興趣嗎~ 剛看到好笑的笑話~ 這些人就在你左右嗎? 減肥幫~
MotoGP 2007~ MotoGP 2006~ MotoGP 2005~

此文章於 2003-06-03 01:57 AM 被 xmx 編輯.
舊 2003-06-03, 01:43 AM #6
回應時引用此文章
xmx離線中  
黑狗弟
Elite Member
 
黑狗弟的大頭照
 

加入日期: Jan 2000
您的住址: 噗噗噗噗
文章: 4,489
回覆: 回覆: Oracle SQL 高手請進...

引用:
Originally posted by xmx
你是指超過 365 天 or 超過 730 天嗎?
有點怪怪的條件…

如果是照你上述所說…
那 sql 大概是長這樣子吧…

select * from table
where (trunc(column) < trunc(sysdate-365)
or trunc(column) < trunc(sysdate-730));


如果是介於超過 -730天 and 未滿 -365天的話…

select * from table
where trunc(column) between trunc(sysdate-729) and trunc(sysdate-366);

ps. 以上全部以日期來計算、不考慮時間…


其實我要的東西是...

一個 Table 裡面有不同的 Item..

不同 item 都有不同期限..

主要是 365 和 730..

對了...

再問一下...

我這樣直接

testlog.testdate - sysdate 會出現類似 123.889988

這樣..

我想因該是因為時間的關西...

要怎麼把後面那小數點弄掉呀??
__________________

你們都是我的心肝寶貝呀..
舊 2003-06-03, 08:35 AM #7
回應時引用此文章
黑狗弟離線中  
lk777
Advance Member
 
lk777的大頭照
 

加入日期: Sep 2000
您的住址: 台中
文章: 406
引用:
testlog.testdate - sysdate 會出現類似 123.889988

日期的加減既然想出來我就不多說了,不過可以往to_chat,to_date這個方向思考,
視你需求用round做4捨5入,或trunc直接捨去,
建議你把tab內容list出來問比較快,不過自己想成就感會大些,加油囉.
舊 2003-06-03, 08:50 AM #8
回應時引用此文章
lk777離線中  
黑狗弟
Elite Member
 
黑狗弟的大頭照
 

加入日期: Jan 2000
您的住址: 噗噗噗噗
文章: 4,489
像這樣...
-
Select
employees.employee_id,
employees.first_name,
employees.last_name,
tests.name,
testlog.test_date,
tests.frequency,
SYSDATE - testlog.test_date DayTaken,
SYSDATE - testlog.test_date - tests.frequency DaysOverdue
From employees, tests, testlog
Where
employees.employee_id = testlog.employee_id
and testlog.test_id = tests.test_id
and SYSDATE - testlog.test_date > tests.frequency;
-
lk777 大大所說的 trunc 因該放在哪呀??
__________________

你們都是我的心肝寶貝呀..
舊 2003-06-03, 11:10 AM #9
回應時引用此文章
黑狗弟離線中  
黑狗弟
Elite Member
 
黑狗弟的大頭照
 

加入日期: Jan 2000
您的住址: 噗噗噗噗
文章: 4,489
再問各位大大一題...
-----------
Select
Trips.trip_id,
Planetypes.name,
Trips.plane_id,
Planetypes.max_passengers,
Count(Trips.trip_id) carried
From boardingpass, trips, planes, planetypes
Where
Boardingpass.trip_id = trips.trip_id and
trips.plane_id = planes.plane_id and
planes.planetype_id = planetypes.planetype_id and
carried > Planetypes.max_passengers
group by
Trips.trip_id,
Planetypes.name,
Trips.plane_id,
Planetypes.max_passengers
Order by Trips.trip_id
-----------
中間這行
carried > Planetypes.max_passengers
-------------
其實我想要的是把我原先在第 6 行的
-------
Count(Trips.trip_id) carried
-------
的這個數帶進來 where 下面...
可是他說 invalid column...
或者在 where 下面放
-------
Count(Trips.trip_id)
------
他也說不行... @_@

請問各位大大有什麼辦法嗎???

我該放什麼 statement??

我想過在放多個 (select ) 當作 subquery..

不過題目說.. 只能放一個 select statement..
__________________

你們都是我的心肝寶貝呀..
舊 2003-06-03, 04:44 PM #10
回應時引用此文章
黑狗弟離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是03:26 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2026。