2016-01-15 38 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)'将删除时间信息。 –

相关问题