有關查詢日期的SQL語法... |
尚未結案
|
minjiu
中階會員 發表:27 回覆:119 積分:69 註冊:2002-06-26 發送簡訊給我 |
請問各位先進,我有一個Paradox的DB file,此資料檔裡有一個欄位是文字型態(Alpha),此欄位存的是日期及時間的資料,請問我要如何下SQL指令來查詢某期間的記錄呢?煩請回答..謝謝!!
DateTime Value ==================== ======= 05/17/01 13:57:42 aa 2000/06/14 12:07:14 bb 07/24/2001 11:27:24 cc 11/13/01 13:06:13 dd 03/25/03 12:22:25 ee ==================== =======發表人 - minjiu 於 2004/02/09 10:52:38 |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: 首先你必須先將 DATETIME 內的資料格式固定(YYYY/MM/DD or YY/MM/DD or DD/MM/YYYY or DD/MM/YY),而且一定要是固定格式,再用以下 SQL Command
SELECT * FROM TABLE WHERE 文字轉日期(DATETIME) BETWEEN :P_DATE1 AND :P_DATE2 SELECT * FROM TABLE WHERE DATETIME BETWEEN 日期轉文字(:P_DATE1) AND 日期轉文字(:P_DATE2 1)當然,如果針對 DateTime 欄位可以設為 DateTime 格式,往後的程式寫作一定會比較輕鬆 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
minjiu
中階會員 發表:27 回覆:119 積分:69 註冊:2002-06-26 發送簡訊給我 |
|
minjiu
中階會員 發表:27 回覆:119 積分:69 註冊:2002-06-26 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
minjiu
中階會員 發表:27 回覆:119 積分:69 註冊:2002-06-26 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: 方法有二,
1.配合 hahalin 版主的方法並將 DateTime 加工,以下程式範例為增加一個 CalCulated Field(格式為 TDateTime) 並將其值算出
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet); VAR V_DATE : String; V_Result : TDateTime; FormatSettings: TFormatSettings; begin FormatSettings.ShortDateFormat := ShortDateFormat; V_DATE := Copy(DataSet.FieldByName('ST').AsString,1,POS(' ',DataSet.FieldByName('ST').AsString)-1); TRY ShortDateFormat := 'YYYY/MM/DD'; V_Result := StrToDate(V_DATE); EXCEPT TRY ShortDateFormat := 'MM/DD/YYYY'; V_Result := StrToDate(V_DATE); EXCEPT TRY ShortDateFormat := 'MM/DD/YY'; V_Result := StrToDate(V_DATE); EXCEPT TRY ShortDateFormat := 'YY/MM/DD'; V_Result := StrToDate(V_DATE); EXCEPT V_Result := Now; END END; END; END; ShortDateFormat := FormatSettings.ShortDateFormat; DataSet.FieldByName('DT').AsDateTime := V_Result; end;2.若 DataBase 中,支援 StoredProcedure 或 Custom Function 功能,增加一個如上功能之 Function 於 Query 中使用 select * from table where My_StrToDate(DateTime) between :p_date1 and :p_date2---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |