請較如何以 SQL轉換同一TABLE中的兩個日期欄 |
|
pokemf
一般會員 發表:5 回覆:12 積分:3 註冊:2002-05-24 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
pokemf
一般會員 發表:5 回覆:12 積分:3 註冊:2002-05-24 發送簡訊給我 |
對不起,可能是我沒將意思表達清楚,我的問題是:
有如下之資料檔(TABLE)
ODNO CNO DAY1 (文字欄位) DAY2 日期欄位 TOTAL
------ ------- --------------- ------------- ------
1001 A001 1988/12/28 12000
1002 A002 1989/10/12 13000
1003 A001 1992/11/13 14000
1004 A003 1991/03/15 15000
D1是原先有的舊資料, 但因為某種原因,需改用日期型態,SO 加上 日期型態的 D2欄位 ,現在的問題是需要將 D1 資料倒給 D2 該如何以SQL完成(已用 WHILE NOT TABLE.EOF DO ..... 的方式逐筆去作,當然可以,但效率太差了)
P.S. Hagar 兄的方式,我試過了,不過會出現
[Error] Unit1.pas(32): Undeclared identifier: 'DAY1' 我的寫法是: Query1.Close;
Query1.SQL.Clear;
Query1.SQL.TEXT:='UPDATE AB103 SET DAY2= :DAY1';
query1.ParamByName('DAY2').AsDate:=StrTodate(DAY1);
Query1.Open;
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: Query1.Close; Query1.SQL.Clear; Query1.SQL.TEXT:='UPDATE AB103 SET DAY2= :DAY1'; query1.ParamByName('DAY2').AsDate:=StrTodate(DAY1); Query1.Open;這個方法是錯的喔! DAY1是為宣告的變數,且若真得有宣告該update指令會讓所有day2都設為同一天! 應該是要 Query1.Close; Query1.SQL.Clear; Query1.SQL.TEXT:='UPDATE AB103 SET DAY2=DAY1'; Query1.execsql; 但以上指令不同資料庫寫法不同, 您是用那種資料庫? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
daniel
一般會員 發表:12 回覆:20 積分:16 註冊:2002-06-03 發送簡訊給我 |
引言:引言: Query1.Close; Query1.SQL.Clear; Query1.SQL.TEXT:='UPDATE AB103 SET DAY2= :DAY1'; query1.ParamByName('DAY2').AsDate:=StrTodate(DAY1); Query1.Open;這個方法是錯的喔! DAY1是為宣告的變數,且若真得有宣告該update指令會讓所有day2都設為同一天! 應該是要 Query1.Close; Query1.SQL.Clear; Query1.SQL.TEXT:='UPDATE AB103 SET DAY2=DAY1'; Query1.execsql; 但以上指令不同資料庫寫法不同, 您是用那種資料庫? For Oracle, try as below: UPDATE AB103 SET DAY2=TO_DATE(DAY1,'YYYY/MM/DD'); ~~~Delphi K.Top討論區站長~~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |