我正在尝试在SQL Developer
的表格中插入TIME值,但我会返回当前月份。我在创建表时使用Date作为约束。很抱歉编写得不好的代码,我不熟悉SQL。
INSERT INTO DELIVERY(ORDER_ID, DELIVERY_ID, DELIVERY_DATE, DELIVERY_TIME)
VALUES(1, 1565412,('06/Sep/12'),(TO_DATE('16:18:14', 'hh24:mi:ss')));
输出:
ORDER_ID DELIVERY_ID DELIVERY_DATE DELIVERY_TIME
1 1565412 06-SEP-12 01-FEB-15
2 8456233 24-MAR-12 01-FEB-15
3 8412654 21-JUN-12 01-FEB-15
4 1124335 03-JUN-11 01-FEB-15
5 7218854 30-AUG-11 01-FEB-15 `
这是表格:
CREATE TABLE DELIVERY (
ORDER_ID NUMBER(7),
DELIVERY_ID NUMBER(7) CONSTRAINT DELIVERY_ID_NN NOT NULL,
DELIVERY_DATE DATE CONSTRAINT DELIVERY_DATE_NN NOT NULL,
DELIVERY_TIME DATE CONSTRAINT DELIVERY_TIME_NN NOT NULL,
PRIMARY KEY(DELIVERY_ID),
FOREIGN KEY (ORDER_ID) REFERENCES ORDERS(ORDER_ID)
);
当我'SELECT delivery_time FROM DELIVERY`时,我希望显示我插入表格的时间,而不是日期。我不明白为什么它给我看01-FEB-15
答案 0 :(得分:1)
您的时间存储正常。但是,您需要在DELIVERY_TIME
列上放置一个遮罩以仅显示时间。试试这个问题:
select order_id, delivery_id, delivery_date, to_char(delivery_time,'hh24:mi:ss')
from delivery
您还可以在SQL Developer
中设置NLS设置,以便在菜单中默认显示时间
然后设置字段日期格式(这是在4.0.0.13版本中,我不知道它是否在其他版本中发生变化)。