Tôi phải nhập
STIMINGmột thời gian
Oracle không có TIME loại dữ liệu. DATE kiểu dữ liệu luôn được lưu trữ nội bộ dưới dạng 7 byte và luôn bao gồm năm (2 byte) và tháng, ngày, giờ, phút và giây (mỗi byte 1 byte).
Bạn không thể không có thành phần năm, tháng hoặc ngày của DATE .
Nếu bạn muốn một thời gian riêng thì bạn sẽ phải lưu trữ nó dưới dạng một kiểu dữ liệu khác hoặc lưu trữ năm / tháng / ngày và bỏ qua thành phần đó.
Khi bạn SELECT nhập STIMING cột nó không hiển thị thành phần thời gian. Bạn có thể thay đổi điều này bằng cách thay đổi định dạng ngày mặc định được đặt trong NLS_DATE_FORMAT tham số phiên.
Bạn có thể xem lại thông số này bằng cách sử dụng:
SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';
Bạn có thể đặt giá trị này trong phiên hiện tại của mình bằng cách sử dụng:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
(Lưu ý:điều này không thay đổi giá trị cho bất kỳ người dùng nào khác.)
Khi bạn chèn ngày, bạn có thể sử dụng:
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TO_DATE( '01-APR-2017 07:00' DD-MON-YYYY HH24:MI' ) )
Hoặc ANSI TIMESTAMP nghĩa đen (sẽ được truyền hoàn toàn đến DATE định dạng của cột):
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )