Firebird UDF 如何抓到目前日期? |
尚未結案
|
smallcatmm
一般會員 發表:1 回覆:1 積分:0 註冊:2004-04-08 發送簡訊給我 |
FIREBIRD 之 UDF 程式:(欲得到目前日期) FIREBIRD UDF SQL:
declare external function f_DateTimeNow
returns
timestamp
entry_point 'DateTimeNow' module_name 'UserUDF'; DELPHI DLL:UserUDF.DLL function DateTimeNow : TDateTime ;cdecl; export;
.... function DateTimeNow : TDateTime;
begin
result:=Now();
end; OR function DateTimeNow : TSQLTimeStamp;
begin
result:=DateTimeToSQLTimeStamp(Now());
end; OR function DateTimeNow : TTimeStamp;
begin
result:=DateTimeToTimeStamp(Now());
end; 皆傳回奇怪地日期,請問先進們,要如何在得到"目前日期"?
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
smallcatmm
一般會員 發表:1 回覆:1 積分:0 註冊:2004-04-08 發送簡訊給我 |
|
chinyu
高階會員 發表:12 回覆:157 積分:153 註冊:2002-06-14 發送簡訊給我 |
引言: 因為要寫FireBird 的 storeprocedure 及 trigger 想用到目前日期及時間. 謝謝!InterBase 提供下列命令讓你取得目前的日期時間: CURRENT_DATE 傳回日期 CURRENT_TIME 傳回時間 CURRENT_TIMESTAMP 傳回日期時間 這裡提供兩種方法: Sol1.利用以下 SQL 命令取得現在時間: select distinct CURRENT_TIMESTAMP from "資料表名稱" "資料表名稱"請選擇筆數很少的資料表,執行速度會比較快。 Sol2.撰寫預儲程序: SET TERM !! ; create procedure "GET_CURRENT_TIMESTAMP" returns ("CUR_TIME" TIMESTAMP) as begin CUR_TIME = CURRENT_TIMESTAMP; end !! (以上命令請在 ISQL 中執行) 然後在 Delphi 程式中,可以使用 TIBStoredProc 元件,像這樣: procedure TForm1.Button1Click(Sender: TObject); var DbSvrTime: TDateTime; begin IBStoredProc1.StoredProcName := 'GET_CURRENT_TIMESTAMP'; IBStoredProc1.ExecProc; IBTransaction1.Commit; DbSvrTime := IBStoredProc1.Params[0].AsDateTime; ShowMessage('DB server 時間為 ' DateTimeToStr(DbSvrTime)); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |