我有一个TIMESTAMP(6)
列,其中填充了数据。时间信息不再重要。如何将其迁移到DATE
列并保存数据?在sql中最简单的方法是什么?
CAST(timestamp_expression AS DATE)
例如,查询为:SELECT CAST(SYSTIMESTAMP AS DATE) FROM dual;
替代:
SELECT TO_DATE (TO_CHAR (SYSTIMESTAMP, 'YYYY-MON-DD HH24:MI:SS'),
'YYYY-MON-DD HH24:MI:SS'
) AS my_date
FROM DUAL
添加新列:
ALTER TABLE table_name ADD new_date_column DATE;
然后使用隐式强制转换:
UPDATE table_name
SET new_date_column = old_timestamp_column;
或显式强制转换:
UPDATE table_name
SET new_date_column = CAST( old_timestamp_column AS DATE );