2016-01-15 41 views

回答

5

您可以通過鑄造它截斷TIMESTAMPDATETIME

cast(EVENT_DATE as DATE) 
cast(EVENT_DATE as TIME) 

這也記錄了Interbase的6嵌入式SQL指南,第從SQL數據類型到datetime數據類型的轉換(第181頁)。本手冊可從Firebird網站獲得。

這隻適用於方言3.如果您仍在使用方言1數據庫,則需要使用中間轉換爲VARCHAR(區域設置特定長度爲10或11),如Maxims answer中的時間去除時間一部分。這是因爲方言1中的DATE確實是一個時間戳(而不僅僅是一個日期)。

2

您可以使用CAST()函數:

update EVENTS 
    set EVENT_DATE = cast(cast(EVENT_DATE as varchar(11)) as date) 
    where EVENT_NUM = '8592' 
+4

您不需要轉換爲varchar,直接將時間戳轉換爲日期! – ain

+0

可能它取決於使用的方言和方言3的作品。我使用方言1的數據庫,在那裏我必須先投射到varchar,因爲如果我至今爲止它不會消除時間。 –

+0

這是因爲在方言1(自2000年以來BTW已被棄用)中,'DATE'是'TIMESTAMP'。你的技巧是可行的,因爲使用'VARCHAR(11)'將刪除時間信息。 –

相關問題