簡體   English   中英

Oracle:將日期時間轉換為特定格式

[英]Oracle: Convert Date Time to Specific format

全能的Stackoverflow下午好!

我並不過分熟悉Oracle中的SQL,但需要獲取日期/時間值並將其轉換為與另一個應用程序的特定格式匹配的字符串。 我發現很多類似的場景,但那些與Oracle文檔混合的場景並沒有讓我得到我需要的東西。

輸入格式如下:2014年8月6日下午3:05:21

我需要輸入到其他應用程序的格式如下:YYYYMMDDhhmmssuu

uu是微秒(我想在Oracle中的小數秒)。

我認為會起作用的是:

to_date(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF') 

我認為只有輸入格式與輸出格式匹配才有效。

如果您能提供幫助,我將不勝感激!

如果您從DATE類型轉換為輸出格式使用TO_CHAR函數:

TO_CHAR(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF')

如果您從VARCHAR2類型轉換,則使用這兩個函數:

TO_CHAR(TO_DATE(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT, 'MM/DD/YYYY HH:MI:SS'),'YYYYMMDDHH24MISSFF')

TO_DATE - 從VARCHAR2類型(輸入格式)轉換為DATE類型; TO_CHAR - 從DATE類型到VARCHAR2類型(輸出格式)

從dual中選擇to_char(systimestamp,'yyyymmddhh24missFF');

您需要的Oracle功能是TO_CHAR。

TO_CHAR(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT, 'YYYYMMDDHH24MISSFF')

由於你的格式正在尋找一個字符串變量,我不確定它是否需要一個to_date。

我的建議是嘗試結合使用to_char()和to_date()函數

to_char(to_date(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'DD/MM/YYYY HH:MM:SS),'YYYYMMDDHH24MISSFF')

要么

to_date(to_char(VP_ACTUAL_RPT_DETAILS.ETLLOADER_OUT,'YYYYMMDDHH24MISSFF'),''DD/MM/YYYY HH:MM:SS')

是我會嘗試的功能。 Oracle對於使用日期/字符串的輸入非常挑剔,我對Oracle也相對較新,時間/日期通常令人沮喪

暫無
暫無

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

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