如何使用相同的时间戳将多个记录插入Oracle

时间:2014-06-06 15:28:40

标签: sql oracle date

我的问题有所不同。

这里的人要求插入日期和时间,但我的问题是如何只插入日期DD-MM-YYYY?我不需要时间插入。由于毫秒的差异,我得到了例外。所以我想避免这种情况。

sysdate,oracle插入日期中的current_time关键字以及时间。

要求就像我必须插入1000行,其中每行的时间戳(我不希望单个毫分钟差异)应该相同。

3 个答案:

答案 0 :(得分:5)

在Oracle中使用时间为“00:00:00”的日期,例如:trunc(sysdate)。 没有仅限日期的类型(没有时间)。

答案 1 :(得分:2)

所以你只想插入大量具有相同时间戳的记录?

首先,这是的工作原因:

CREATE TABLE test_table (tstamp TIMESTAMP);

INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);
INSERT INTO test_table VALUES (systimestamp);

SELECT tstamp FROM test_table;

TSTAMP
----------------------------
06-JUN-14 12.24.28.659493 PM
06-JUN-14 12.24.28.663258 PM
06-JUN-14 12.24.28.666936 PM
06-JUN-14 12.24.28.671949 PM
06-JUN-14 12.24.28.676808 PM
06-JUN-14 12.24.28.680507 PM
06-JUN-14 12.24.28.684501 PM
06-JUN-14 12.24.28.688620 PM
06-JUN-14 12.24.28.694491 PM
06-JUN-14 12.24.28.698288 PM

解决方案,在PL / SQL块中执行INSERT。首先获取systimestamp并将其存储在变量中,例如v_right_now。然后,您可以获得所有记录,以获得完全相同的日期/时间。

DECLARE
  v_right_now TIMESTAMP := systimestamp;
BEGIN
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
  INSERT INTO test_table VALUES (v_right_now);
END;
/

SELECT tstamp FROM test_table;

TSTAMP
----------------------------
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM
06-JUN-14 12.24.48.263444 PM

答案 2 :(得分:-2)

试试这个:

select to_date(sysdate,'DD/MM/YY') FROM DUAL

或者:

select to_date(column_name,'DD/MM/YYYY') FROM TABLE