如何更新包含日期/时间信息的字段以仅包含数据的日期部分?类似于以下内容:
update [EVENTS]
SET [EVENT_DATE] = DATEADD(dd, 0, DATEDIFF(dd, 0, [EVENT_DATE])
WHERE EVENT_NUM = '8592'
Run Code Online (Sandbox Code Playgroud)
我还需要得到相当于将它设置为时间组件?
您可以截断TIMESTAMP到DATE或TIME铸造它:
cast(EVENT_DATE as DATE)
cast(EVENT_DATE as TIME)
Run Code Online (Sandbox Code Playgroud)
"Interbase 6嵌入式SQL指南",第177页的"从SQL数据类型转换为datetime数据类型 "一节中也记录了这一点.本手册可从Firebird网站获得.
这仅适用于方言3.如果您仍在使用方言1数据库,则需要使用中间强制转换VARCHAR(具有特定于10或11的区域设置),如在Maxims中回答剥离时间部分.这是因为DATE在方言1中实际上是一个时间戳(而不仅仅是一个日期).