我創建一個這樣的表
CREATE TABLE flights_info
( flight_id number(10) NOT NULL,
Train_no number(10) NOT NULL,
station varchar2(50) NOT NULL,
depature_time date NOT NULL,
arrival_time date NOT NULL,
seats_number number(10) NOT NULL,
seats_reserved number(10) NOT NULL,
flight_date date NOT NULL,
CONSTRAINT flight_id PRIMARY KEY (flight_id )
);
檔案 depature_time 和arrival_time 應該代表時間值,所以我嘗試使用這個腳本插入
INSERT INTO flights_info (flight_id,Train_no,station,depature_time,arrival_time,seats_number,seats_reserved,flight_date) VALUES
(1,1,'Station01', to_date('8:00','hh:mi'),to_date('10:00','hh:mi'),30,10, date '2022-05-14');
但我不知道為什么我得到日期資料而不是時間。
輸出 輸出
我不確定出了什么問題
uj5u.com熱心網友回復:
資料型別是一種DATE二進制資料型別,由 7 個位元組組成,分別代表:世紀、世紀、月、日、小時、分鐘和秒。它總是擁有所有這些組件,即使您只設定其中一些組件,其他組件也會設定默認值。
- 當前年份和月份。
- 一個月的第一天。
- 零時、分、秒。
因此,如果您使用:
SELECT to_date('8:00','hh:mi') FROM DUAL;
然后,您將獲得當前月份和年份的第一天的日期,其中包含上午 8 小時和零分和秒。
我不知道為什么我得到日期資料而不是時間。
因為您用于顯示該DATE值的客戶端應用程式設定為僅顯示日期組件而不顯示DATE.
對于 SQL*Plus 和 SQL Developer,默認格式由NLS_DATE_FORMATsession 引數設定,您可以使用以下方法進行更改:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
對于其他客戶端應用程式,您需要查看它們的首選項(或檔案)以了解如何設定默認日期格式。
如果您只想顯示時間組件,請使用:
SELECT TO_CHAR(arrival_time, 'HH24:MI:SS') AS arrival_time
FROM flight_info;
注意:HHorHH12格式模型適用于 12 小時制。您可能想要HH24一個 24 小時制的時鐘。
如果要存盤沒有日期的時間,請使用INTERVAL DAY(0) TO SECOND(0)資料型別。
CREATE TABLE flights_info(
flight_id number(10) NOT NULL,
Train_no number(10) NOT NULL,
station varchar2(50) NOT NULL,
depature_time INTERVAL DAY(0) TO SECOND(0) NOT NULL,
arrival_time INTERVAL DAY(0) TO SECOND(0) NOT NULL,
seats_number number(10) NOT NULL,
seats_reserved number(10) NOT NULL,
flight_date date NOT NULL,
CONSTRAINT flight_id PRIMARY KEY (flight_id )
);
然后:
INSERT INTO flights_info (
flight_id,
Train_no,
station,
depature_time,
arrival_time,
seats_number,
seats_reserved,
flight_date
) VALUES (
1,
1,
'Station01',
INTERVAL '08:00:00' HOUR TO SECOND,
INTERVAL '10:00:00' HOUR TO SECOND,
30,
10,
date '2022-05-14'
);
然而,雖然這看起來是個好主意,但您可能確實希望使用日期和時間,以便當航班跨越兩天或更長時間時,您可以記錄到達和離開的日期和時間(并且您不需要flight_date列,因為它將存盤在arrival_time和departure_time列中)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/475140.html
下一篇:從字串中提取特定日期
