在Oracle 10g中,在表中使用DATE类型时遇到问题。我只想DATE字段存储只有DATE没有时间自动。
有这么多的解决方案,我知道它喜欢使用TO_CHAR和TO_DATE或TRUNC,但我面临着我使用这么多的过程插入或更新数据,没有时间更新所有这些。
我如何解决这个问题?
最好的解决办法是:
>从DATE列中删除所有时间(更新yourtable set yourdatecolumn = trunc(yourdatecolumn))
>通过使用check(yourdatecolumn = trunc(yourdatecolumn))在列上放置检查约束来确保所有将来的日期都不含时间部分。
>调整所有的INSERT和UPDATE语句,或者 – 如果你幸运 – 调整你的API,只能插入TRUNCed日期。
最简单的解决办法是:
>(可选)从DATE列中删除所有时间。>创建一个行前插入或更新数据库触发器设置:new.yourdatecolumn:= trunc(:new.yourdatecolumn);