Tôi phải nhập
STIMING
mộ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' )