簡體   English   中英

oracle PL/SQL 中的日期格式

[英]Date format in oracle PL/SQL

如何檢查 oracle 表中特定列的日期格式? oracle DATE 數據類型是否能夠存儲兩種格式(美國和歐洲)? 如果是這樣,有沒有辦法區分哪個是月份,哪個是日期?

在 Oracle 中, DATE是一種二進制數據類型,由 7 個字節組成,分別表示

  1. 世紀;
  2. 世紀之年;
  3. 月;
  4. 天;
  5. 小時;
  6. 分鍾;
  7. 第二

始終具有這些組件,並且從不以任何特定格式存儲。


如何檢查 oracle 表中特定列的日期格式?

它沒有任何格式,所以你不能。

如果您想查看DATE的二進制值,可以使用DUMP function:

SELECT DUMP(date_column) FROM table_name;

oracle DATE數據類型是否能夠存儲兩種格式(美國和歐洲)?

不,它從不存儲任何格式。

如果要存儲格式化數據,請使用字符串數據類型; 但是,這通常被認為是日期的不良做法,因為如果您同時使用DD/MM/YYYYMM/DD/YYYY ,它會在日和月之間引入歧義。 最佳做法是將日期存儲為DATE ,然后在顯示日期時選擇適當的格式。


如果您想顯示DATE日期類型,那么您可以使用TO_CHAR function 並指定適合您要將其顯示為的地區的格式 model。

SELECT TO_CHAR(date_column, 'DD/MM/YYYY HH24:MI:SS') AS eu_format,
       TO_CHAR(date_column, 'MM/DD/YYYY HH24:MI:SS') AS us_format,
       TO_CHAR(date_column, 'YYYY-MM-DD"T"HH24:MI:SS') AS iso8601_format
FROM   table_name

db<> 在這里擺弄

此答案中列出了不同地區的默認格式 model(SQL 引擎在將字符串隱式轉換為日期時使用,反之亦然,或由某些客戶端應用程序用於顯示日期)。

Oracle 日期以內部二進制數據格式存儲。 顯示格式由客戶端處理,不會存儲。

這與數字相同,例如,根據與to_char function 一起使用的格式掩碼,相同的值可以顯示為 1000、1,000.00、1e3 等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM