簡體   English   中英

Oracle:如何將字符串轉換為日期格式

[英]Oracle: How to convert a string into date format

在問這個問題之前做了很多搜索,例如如何將字符串轉換為日期格式如何將字符串轉換為日期 ,但仍然無法弄清楚。

因此,這是一個問題,如何在Oracle中將這些字符串日期轉換為日期:

“ 2016-08-15 10:45:30”(字符串類型)-> 20160815(日期類型)

“ 20160815104530”(字符串類型)-> 20160815(日期類型)

任何想法將不勝感激。

您使用to_date()

select to_date(substr(str1, 1, 10), 'YYYY-MM-DD')
select to_date(substr(str2, 1, 8), 'YYYYMMDD')

您在這里混合兩件事:

首先是將Oracle VARCHAR2中的String數據類型轉換為DATE數據類型。 DATE數據類型的精度為秒,您無法更改。 DATE數據類型將始終為您提供日期和時間部分,即年,月,日,小時,分鍾和秒: Oracle SQL數據類型文檔

但是,您要詢問的第二部分是有關如何在檢索時格式化日期。 在運行報告或日期的其他可視顯示方式時,這很有用。 例如,在美國,您很可能希望日期列以MM/DD/YYYY格式顯示,而在世界上其他任何地方,您都希望使用DD/MM/YYYY Oracle通過告訴您要使用的NLS_DATE_FORMAT來做到這一點。 您可以為每個單獨的會話以及在數據庫級別上設置該參數,這取決於您(和您的DBA)決定在哪里以及何時進行設置。 您可以通過ALTER SESSION命令來應用它:

SQL> ALTER SESSION SET nls_date_format='YYYY-MM-DD';

Session altered.

SQL> SELECT TO_DATE('2016-08-15 10:45:30', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

TO_DATE(
----------
2016-08-15

SQL> SELECT TO_DATE('20160815104530', 'YYYYMMDDHH24MISS') FROM DUAL;

TO_DATE(
----------
2016-08-15

暫無
暫無

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

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