Oracle日期列值为0000

时间:2016-06-01 13:57:28

标签: sql oracle

我们需要在Oracle列中以date数据类型存储00-00-00。但甲骨文并不允许。

是否有其他表现形式或存储方式?

2 个答案:

答案 0 :(得分:3)

Oracle确实允许您插入1月1日1AD日期:

INSERT INTO table_name ( date_column ) VALUES ( DATE '0001-01-01' );

答案 1 :(得分:0)

我不知道这是否相关,但我曾经“需要”存储1996年4月0日,1996年第0期等。真正的要求是这些财务交易可以不分别分配到一天或一个月(例如日记帐凭证)。

解决方案是使用实际日期(1996年4月1日,1996年1月1日),并添加另一列给出记录的“范围” - “D”,“M”,“Q”,“Y” ”

因此,如果需要1996年4月1日的所有交易,可以将date_scope ='D'谓词添加到my_date = date'1996-04-01',以确保仅检索每日交易。

如果需要1996年4月的所有交易......

my_date between date '1996-04-01' and date '1996-04-30' and
date_scope in ('D','M')