首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL/ORACLE中将列的数据类型“varchar”更改为“日期”

在SQL/ORACLE中将列的数据类型“varchar”更改为“日期”
EN

Stack Overflow用户
提问于 2014-01-30 21:19:27
回答 6查看 49.4K关注 0票数 2

我在oracle 10G创建的数据库中有一个表。它包含一个类型为“VARCHAR”的列,并以这种格式存储日期为字符串->‘’例如:‘12-8月-2008’。现在,我想将本专栏的数据类型从VARCHAR更改为日期。但是当我浏览这个查询时->

代码语言:javascript
复制
ALTER TABLE sales_order
MODIFY COLUMN delivery_date DATE;

我得到跟随错误

ORA-00905:缺失关键字

我也尝试过:

代码语言:javascript
复制
ALTER TABLE sales_order
ALTER COLUMN delivery_date DATE;

我发现了一个错误:

ORA-01735:无效的ALTER选项

但是,当我尝试添加一个带有日期数据类型的新列时,它可以正常工作。例子:

代码语言:javascript
复制
ALTER TABLE sales_order
ADD delivery DATE;

因此,有人能建议我一种不删除列及其数据的方式来更改数据类型吗?

EN

回答 6

Stack Overflow用户

发布于 2014-01-30 21:26:34

这是第一个,稍微修改一下:

代码语言:javascript
复制
ALTER TABLE sales_order MODIFY (delivery_date DATE);

但我不确定这些特定的数据类型是否有效,而且根据当前的数据,它也可能不起作用。

在这种情况下,你可能认为有必要:

  • 创建日期类型的新列X
  • 基于旧列填充X (可能需要几次数据修复才能工作)。
  • 删除旧列。
  • X重命名为旧列名。
票数 4
EN

Stack Overflow用户

发布于 2016-05-02 16:05:17

虽然这是一个很老的问题,但我将把我的解决方案放在这里,供寻求解决办法的人使用:

这是我的解决方案,而且效果很好。

代码语言:javascript
复制
ALTER TABLE `sales_order` CHANGE `delivery_date` `delivery_date` DATE;

谢谢

票数 1
EN

Stack Overflow用户

发布于 2014-02-18 04:36:33

修改列,然后语法是:-

修改表table_name修改column_name数据类型;

但是,当您修改列时,datatype列必须为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21467607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档