繁体   English   中英

如何将 Oracle 中的时间戳转换为日期列?

[英]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 );

db<>小提琴

如果您只想更改列的数据类型而不查看数据,请使用VBokšić 的答案或修改列,然后使用TRUNC将时间分量归零:

ALTER TABLE table_name MODIFY column_name DATE;
UPDATE table_name SET column_name = TRUNC( column_name );

我相信你可以直接修改这个专栏,一切都会好的:

ALTER TABLE testTable
MODIFY test_c date;

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM