[英]How to convert Timestamp to Date column in Oracle?
我有一个填满数据的TIMESTAMP(6)
列。 时间信息不再重要。 如何将其迁移到DATE
列并保存数据?
在 SQL 中执行此操作的最简单方法是什么?
DATE
列始终具有年、月、日、小时、分钟和秒组件,因此转换为DATE
不会消除这些时间组件(但会丢弃存储在TIMESTAMP
中的小数秒)。
添加新列:
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 );
然后您可以查看更改并删除旧列。
如果要将所有时间分量设置为零,则可以使用TRUNC
:
UPDATE table_name
SET new_date_column = TRUNC( old_timestamp_column );
如果您只想更改列的数据类型而不查看数据,请使用VBokšić 的答案或修改列,然后使用TRUNC
将时间分量归零:
ALTER TABLE table_name MODIFY column_name DATE;
UPDATE table_name SET column_name = TRUNC( column_name );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.