2

次のパーティション間隔でテーブルを作成しました。

create table 
pos_data_two ( 
    start_date        TIMESTAMP,
    store_id          NUMBER,
    inventory_id      NUMBER(6),
    qty_sold          NUMBER(3)
 ) 
 PARTITION BY RANGE (start_date) 
 INTERVAL(NUMTODSINTERVAL (1, 'DAY')) 
 (  
  PARTITION pos_data_p2 VALUES LESS THAN (TO_DATE('30.10.2013', 'DD.MM.YYYY'))
 ); 

タイムスタンプ値を含む行を挿入すると

'31.10.2013 00:00:00'

新しく作成されたパーティションの最大値は次のとおりです。

TIMESTAMP' 2013-11-01 00:00:00'

あれは正しいですか?2013-10-31 00:00:00 ではないでしょうか??

4

1 に答える 1

3

(免責事項:私はここで推測しています)

日ごとに分割しているため、特定の日付の値は同じ分割に分類されます。

挿入する行の start_date はちょうど真夜中であるため、Oracle はそれを前日に置くか翌日に置くかを決定する必要があります。

どうやら、Oracleはルールを使用しています

lower_bound <= value < upper_bound

値が入る間隔を決定するため、あなたの値

2013-10-31 00:00:00

間に入ります

[2013-10-31 00:00:00; 2013-11-01 00:00:00 [

于 2013-10-31T12:16:31.393 に答える