線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1552
推到 Plurk!
推到 Facebook!

使用SQL語法 群組 "時間"

 
kukini
一般會員


發表:2
回覆:3
積分:1
註冊:2006-07-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-28 10:25:34 IP:59.120.xxx.xxx 訂閱

小弟使用的是Firebird資料庫,想做SQL查詢,假設Table如下

DT
2006/07/08 08:00:00
2006/08/08 09:00:00
2006/09/08 10:00:00
2007/07/08 11:00:00
2007/07/08 12:00:00

想查得如下資料

ABC
2006
2007

使用SQL語法群組"年":SELECT YEAR(DT) as ABC FROM database GROUP BY YEAR(DT)

但卻出現不能辨識YEAR的訊息,是因為

a. Firebird本身不能辨識?(用ACCESS可以)

b. SQL語法下錯?

又或者我想查詢成下面格式,又該怎麼下SQL呢?

ABC
2006/07/08
2006/08/08
2006/09/08
2007/07/08

煩請各位高手協助,感恩~

Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-28 11:07:53 IP:210.65.xxx.xxx 未訂閱

Sorry !! 我是 FireBird 的門外漢

以下連結不知是否有幫助

http://www.dotnetfirebird.org/blog/2005/01/date-functions.html

EXTRACT(DAY FROM D)

EXTRACT(YEAR FROM D)

Fishman

------
Fishman
kukini
一般會員


發表:2
回覆:3
積分:1
註冊:2006-07-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-28 12:41:37 IP:59.120.xxx.xxx 訂閱

感謝Fishman老大!我試出來了XD

SELECT extract(year from DT) AS ABC FROM database GROUP BY extract(year from DT)

看來該去弄一本InterBase的書來看..

kukini
一般會員


發表:2
回覆:3
積分:1
註冊:2006-07-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-07-28 12:52:42 IP:59.120.xxx.xxx 訂閱

不過...含日期的還是SELECT不出來 = =

ABC
2006/07/08
2006/08/08
2006/09/08
2007/07/08

Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-07-28 17:31:17 IP:210.65.xxx.xxx 未訂閱

找了半天找不到把時間 Truncate 掉的函數,你可以試著分別取出年、月、日再加以組合也可以

Fishman

------
Fishman
kukini
一般會員


發表:2
回覆:3
積分:1
註冊:2006-07-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-07-31 09:26:00 IP:59.120.xxx.xxx 訂閱

謝謝!我用這個方法解決了,得靠自己組合:

SELECT DISTINCT EXTRACT(year from DT),EXTRACT(month from DT),EXTRACT(day from DT)

FROM database

系統時間:2024-07-04 14:42:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!