2015-04-21 125 views
3

我的表table1的列date_txt其中包括2/16/2011 12:00:00 AM - 列date_txtVARCHAR2 (250 Char)sql oracle更新日期

我的表table1也有列date這是一個DATE

我想 「更新」 我的領域:

最終的輸出應該是:

表1:

date 

2/16/2011 

所以從table1date_txt 「日期」 和更新的需要作爲日期列date

任何想法?我是一個血腥的初學者。

+0

拿上TO_DATE函數http://www.techonthenet.com/oracle/functions/to_date.php – DSF

+0

看看爲什麼存儲日期/時間varchar列?爲什麼要存儲兩次相同的數 – jarlh

+0

@jarlh我從excel文件中導入了一個現在是varchar的日期,但我希望它在另一個列中作爲日期 – piguy

回答

0

嘗試以下操作:

update table1 set date= 
    (select to_date(date_txt,'dd/mm/yyyy') from table1 where id=yourId) where id=yourId; 

主要用途爲IDS鍵列。

如果這是你每次需要的。我建議你使用Triggers

+0

這裏沒有子查詢需要? – Andomar

+0

OP想要選擇日期並進行更新。 –

+0

是的,你不需要子查詢:)看到我的答案爲例 – Andomar

1

列date_txt包括2011/2/16 12:00 :00 AM

  • 首先,日期沒有任何格式。你看到的是顯示目的很容易解釋日期值。

  • 其次,你應該永遠不會將DATE存儲爲VARCHAR2。這是一個大問題和糟糕的設計。

既然您的設計不好,現在就解決它是個好主意。

遵循以下步驟:

  1. 添加一個新列DATE數據類型
  2. 使用TO_DATE更新舊列中日期值的新列。
  3. 掉落舊列。
  4. 重新命名將新列更改爲舊列。

我已經回答瞭如何做到這一點這裏https://stackoverflow.com/a/29625772/3989608