将TIME插入表SQL

时间:2015-02-26 17:56:43

标签: sql oracle

我正在尝试在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

1 个答案:

答案 0 :(得分:1)

您的时间存储正常。但是,您需要在DELIVERY_TIME列上放置一个遮罩以仅显示时间。试试这个问题:

select order_id, delivery_id, delivery_date, to_char(delivery_time,'hh24:mi:ss') 
from delivery

您还可以在SQL Developer中设置NLS设置,以便在菜单中默认显示时间

  • 工具
  • 偏好设置
  • 数据库
  • NLS,

然后设置字段日期格式(这是在4.0.0.13版本中,我不知道它是否在其他版本中发生变化)。