我的问题有所不同。
这里的人要求插入日期和时间,但我的问题是如何只插入日期DD-MM-YYYY?我不需要时间插入。由于毫秒的差异,我得到了例外。所以我想避免这种情况。
sysdate,oracle插入日期中的current_time关键字以及时间。
要求就像我必须插入1000行,其中每行的时间戳(我不希望单个毫分钟差异)应该相同。
答案 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