Oracle中没有时间的日期类型

时间:2012-05-03 10:11:24

标签: oracle datetime date oracle10g

在Oracle 10g中,我在表格中使用DATE类型时出现问题。我只希望我的DATE字段存储DATE没有时间自动。

有很多解决方案,我知道它就像使用TO_CHARTO_DATETRUNC但我面临着我使用如此多的程序来插入或更新数据并且没有时间更新所有这些。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:25)

最好的解决方案是:

  1. 从DATE列(update yourtable set yourdatecolumn = trunc(yourdatecolumn)

  2. 中删除所有时间
  3. 通过使用check (yourdatecolumn = trunc(yourdatecolumn))

  4. 在列上放置检查约束,确保所有未来日期都不包含时间部分
  5. 调整所有INSERT和UPDATE语句,或者如果你很幸运 - 调整你的API,只插入TRUNCed日期。

  6. 最简单的解决方案是:

    1. (可选)从DATE列中删除所有时间。

    2. 创建设置:new.yourdatecolumn := trunc(:new.yourdatecolumn);

    3. 的行前插入或更新数据库触发器

答案 1 :(得分:-4)

我像这样使用

插入:Insert into table (name_date) values(to_date(current_date,'dd/mm/yyyy')); 更新:update table set name_date=to_date(current_date,'dd/mm/yyyy') where id=1;

这就是......