2013-02-18 58 views
1

在Oracle中(使用pl-sql开发人员)如何在列中使用格式化的默认值? (是这样的:TO_CHAR(SYSDATE, 'HH:MM:SS'))默认值中的格式化SysDate

我要创建这个coumns >>

名称:F1

类型:日期

默认:TO_CHAR( sysdate,'HH:MM:SS')

+2

日期列不具有“格式” – 2013-02-18 07:39:16

回答

1

日期类型值不依赖于格式。
仅在将日期转换为字符串时涉及格式。
您可以创建的字符串值的格式化列:

create table t (
    id int, 
    f1 varchar2(20) default to_char(sysdate, 'HH24:MI:SS') 
); 

SqlFiddle

4

甲骨文没有时间仅列。即使您将列或变量设置为HH24:MI:SS,它仍然会有日期元素。

刚刚存储时间的问题在于,没有日期就很难使用它。那么为什么不把日期时间存储在单个列中呢?

但如果你真的,真的,真的想只是时间商店“午夜秒后”作为一个数:

f1 number(5,0) default to_number(to_char(sysdate, 'sssss')) 
+2

*您可以*也可以使用[间隔](http://stackoverflow.com/a/12216981/266304)而不是数字,例如'f1间隔时间到秒(0)默认systimestamp - trunc(systimestamp)'',它可能稍微更清晰一些,但更难以处理......但只有当你确实真的真的需要时间。 – 2013-02-18 09:44:41