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

請較如何以 SQL轉換同一TABLE中的兩個日期欄

 
pokemf
一般會員


發表:5
回覆:12
積分:3
註冊:2002-05-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-10 23:07:02 IP:61.170.xxx.xxx 未訂閱
一個table有兩個field, d1為字元欄位,現有資料,例如為'1998/12/15' d2為日期欄位,現無資料, 請教各位先進如何以最簡便的方法,將 d2的資料填入d1中呢 ?? 例如 SQL語法 UPDATE tablename d2=.....,
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-11 08:14:03 IP:211.22.xxx.xxx 未訂閱
Query1.Close;
Query1.SQL.Text := 'UPDATE TABLENAME SET d1 = :d1';
Query1.ParamByName('d1').AsString := DateToStr(d2);
Query1.Open;
pokemf
一般會員


發表:5
回覆:12
積分:3
註冊:2002-05-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-11 11:34:34 IP:61.170.xxx.xxx 未訂閱
對不起,可能是我沒將意思表達清楚,我的問題是: 有如下之資料檔(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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-06-11 16:23:39 IP:192.168.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-06-13 15:15:04 IP:139.223.xxx.xxx 未訂閱
引言:
引言: 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討論區站長~~~
系統時間:2024-04-26 4:16:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!