PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   Oracle SQL 高手請進... (https://www.pcdvd.com.tw/showthread.php?t=214404)

黑狗弟 2003-06-02 04:26 PM

Oracle SQL 高手請進...
 
請問一下...

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

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

那我現在要做 query..

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

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

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

先謝謝了...

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

還是想不出來..

JYHuang 2003-06-02 04:53 PM

回覆: 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 裡打的頭快爆了...

還是想不出來..


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

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

黑狗弟 2003-06-02 05:11 PM

回覆: 回覆: Oracle SQL 高手請進...
 
引用:
Originally posted by JYHuang
:jolin: 你把日期存成文字資料當然想不出來:jolin:

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


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

剛剛突然發現....

老師陰我們...

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

sysdate - 125

剛剛被我弄出來了...

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

這題想了兩小時...

謝謝... JYHuang ..

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

不過這題還沒完...:cry: :cry: :cry: :cry:

JYHuang 2003-06-02 05:26 PM

回覆: 回覆: 回覆: 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的人就好了...:think:

黑狗弟 2003-06-02 05:36 PM

wherever.....

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

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

天呀... 好吵呀...

xmx 2003-06-03 01:43 AM

回覆: Oracle SQL 高手請進...
 
引用:
Originally posted by 黑狗弟

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

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



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

如果是照你上述所說…
那 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. 以上全部以日期來計算、不考慮時間…:o

黑狗弟 2003-06-03 08:35 AM

回覆: 回覆: Oracle SQL 高手請進...
 
引用:
Originally posted by xmx
你是指超過 365 天 or 超過 730 天嗎?
有點怪怪的條件…:confused:

如果是照你上述所說…
那 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. 以上全部以日期來計算、不考慮時間…:o


其實我要的東西是...

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

不同 item 都有不同期限..

主要是 365 和 730..

對了...

再問一下...

我這樣直接

testlog.testdate - sysdate 會出現類似 123.889988

這樣..

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

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

lk777 2003-06-03 08:50 AM

引用:
testlog.testdate - sysdate 會出現類似 123.889988

日期的加減既然想出來我就不多說了,不過可以往to_chat,to_date這個方向思考,
視你需求用round做4捨5入,或trunc直接捨去,
建議你把tab內容list出來問比較快,不過自己想成就感會大些,加油囉. :D

黑狗弟 2003-06-03 11:10 AM

像這樣...
-
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 04:44 PM

再問各位大大一題...
-----------
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..


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

vBulletin Version 3.0.1
powered_by_vbulletin 2026。