在 Oracle 10g 中,我在表中使用DATE
类型时遇到了问题。我只想要我的DATE
现场商店DATE
,没有时间自动。
有这么多的解决方案,我知道它喜欢使用TO_CHAR
and TO_DATE
orTRUNC
但我面临着我正在使用如此多的程序来插入或更新数据并且没有时间更新所有这些。
我该如何解决这个问题?
最好的解决方案是:
从您的 DATE 列中删除所有时间 ( update yourtable set yourdatecolumn = trunc(yourdatecolumn)
)
通过使用在列上放置检查约束,确保所有未来日期不包含时间部分check (yourdatecolumn = trunc(yourdatecolumn))
调整所有 INSERT 和 UPDATE 语句,或者 - 如果你幸运的话 - 调整你的 API,只插入 TRUNCed 日期。
最简单的解决方案是:
(可选)从 DATE 列中删除所有时间。
创建一个前行插入或更新数据库触发器,该触发器设置:new.yourdatecolumn := trunc(:new.yourdatecolumn);
我这样用
插入: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;
就这样...