我有一個簡單的資料庫,主要用于教育目的。所以,這是這個名為“RENTAL”的表。
它有幾列,但我最感興趣的是第一列。它被命名為“BOOK_DATE”,告訴我們預定電影的日期。我不明白為什么會執行此查詢:
select book_date, count(*)
from rental
group by book_date;
回傳這個:

為什么不24-SEP-21把這兩個放在一起?(同樣適用于26-SEP-21)。它們可以以不同的格式引入,還是我犯了一些邏輯錯誤?
uj5u.com熱心網友回復:
在 Oracle 中,aDATE是一個二進制資料型別,它總是有 7 個位元組代表世紀、世紀年、月、日、時、分和秒(它不以任何格式存盤)。
您的客戶端應用程式選擇不顯示 的時間組件,DATE但這并不意味著時間組件不存在。
如果您使用:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
然后它可能會為日期設定不同的格式,如果您的客戶端應用程式使用會話引數來控制格式;如果不是,則您需要調整客戶端應用程式的日期顯示設定(請參閱您的客戶端手冊)。
為什么不
24-SEP-21把這兩個放在一起?
它們很可能沒有組合在一起,因為它們具有相同的日期組件但不同的時間組件,并且您的客戶端應用程式沒有顯示時間組件,因此您看不到差異。
如果你想按天聚合然后TRUNC吃日期:
select TRUNC(book_date),
count(*)
from rental
group by TRUNC(book_date);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330504.html
