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

Re: 如何在程式中利用SQL選取某月份的資料?

尚未結案
geilsloi
一般會員


發表:2
回覆:5
積分:1
註冊:2004-06-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-11 15:55:15 IP:202.175.xxx.xxx 未訂閱
請各大高手賜教: 本人想利用SQL語法抽取某月生日員工資料,不知如何編寫,祈請賜教! SQL.Add(Select * from Staff Where Birthdate=SelectMonth); 謝謝!
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-11 15:58:43 IP:218.80.xxx.xxx 未訂閱
如果你存入数据库的员工生日是时间型的就用month(员工生日字段) 如果是字符型的就需要用COPY来取得该字段内容的月份部分
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-11 16:10:31 IP:210.66.xxx.xxx 未訂閱
SQL.Add('Select * from Staff Where Month(Birthdate) = :SelectMonth');
Parameters.ParamByName('SelectMonth').Value := 7;
試試看!我是用MS SQL 2000 Ian
geilsloi
一般會員


發表:2
回覆:5
積分:1
註冊:2004-06-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-11 16:27:05 IP:202.175.xxx.xxx 未訂閱
多謝兩位迅速賜教, 但本人修改後就出現Error Message : Invalid use of Keyword. Token Month(Birthdate)=?, 為什麼? SelectMonth是一個Integer Variable Birthdate是一個Date Field 謝謝!
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-11 17:41:50 IP:210.66.xxx.xxx 未訂閱
請問你用的是什麼資料庫,我是用MS SQL 2000,其抓取月份的函數為Month(Birthdate),也許你用的資料庫不是這個,你查一下你用的資料庫抓取月份的函數是什麼,修改一下應該就可以了! Ian
geilsloi
一般會員


發表:2
回覆:5
積分:1
註冊:2004-06-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-11 17:59:35 IP:202.175.xxx.xxx 未訂閱
您好! 我是用db的, 而Birthdate的Type是定義為Date.
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-11 23:22:14 IP:218.32.xxx.xxx 未訂閱
geilsloi 你好: 試試看: SELECT * FROM Orders WHERE (EXTRACT(MONTH FROM SaleDate) = 5)
geilsloi
一般會員


發表:2
回覆:5
積分:1
註冊:2004-06-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-12 11:22:39 IP:202.175.xxx.xxx 未訂閱
您好Mickey, 上述方法已可行, 若月份5是一個變數, 即前提的SelectMonth, 這句SQL語法應如何寫. Thanks
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-12 15:20:00 IP:218.32.xxx.xxx 未訂閱
引言:
SQL.Add('Select * from Staff Where Month(Birthdate) = :SelectMonth');
Parameters.ParamByName('SelectMonth').Value := 7;
試試看!我是用MS SQL 2000 Ian
l630521 兄已經說明了用參數這部分, 若你嫌用參數太麻煩, 組合出 SQL 字串也行.
geilsloi
一般會員


發表:2
回覆:5
積分:1
註冊:2004-06-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-12 18:07:12 IP:202.175.xxx.xxx 未訂閱
Mickey兄及各大師父: 經過多次試驗後,終於將問題解決,而我是結合各人的方法,語法如下: SQL.Add('Where EXTRACT(MONTH FROM BirthDate) = :SMonth'); ParamByName('SMonth').Value := SelectMonth; 只有這個方法才能順利Compile和執行,Ian兄的方法或轉做String都會在執行SQL時出現Error. 若有其它方法,請賜教. 在此再一次感謝各人對小弟的支持! 順祝各人 身體健康,工作愉快
系統時間:2024-07-02 7:03:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!