簡體   English   中英

在Oracle SQL中將字符串轉換為日期

[英]Convert string to date in Oracle SQL

我正在嘗試將string列轉換為Oracle SQL中的date

這是我的數據值示例:

'03/12/14 11:00:00'

這是我的查詢:

select to_date(A,'DD/MM/YY HH24:MI:SS')
from MyTable

這是輸出示例:

03-DEC-14

為什么我的查詢僅返回日期而不返回小時?

假設您使用的是SQL * Plus(或SQL Developer),則在顯示 DATE值時將應用默認的NLS_DATE_FORMAT。 要驗證您當前的格式,可以運行:

select value 
from nls_session_parameters 
where parameter = 'NLS_DATE_FORMAT';

要對此進行調整,請運行:

alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';

然后,您還應該看到時間。

您試圖顯示日期時間值。 TO_CHAR與正確的FORMAT MODEL一起使用。

例如,

select to_char(sysdate, 'mm/dd/yyyy hh24:mi:ss') from dual;

DATE由日期和時間部分組成。 您只需要確保使用適當的格式模型來顯示它即可。 否則,您最終得到的格式取決於您特定語言環境的NLS設置

您可以使用時間戳記

select to_timestamp(A, 'DD/MM/YY HH24:MI:SS') from MyTable

如果您希望查詢返回日期的時間部分而無需更改nls_date_format ,則可以將從to_date函數獲得的日期轉換為文本表示形式(發現的默認文本表示形式為dd-Mon-yy )。像這樣:

select to_char(
   to_date(A,'DD/MM/YY HH24:MI:SS'),
   ''DD/MM/YY HH24:MI:SS')
from MyTable;

理想情況下,應將MyTable的A列定義為日期列,而不是varchar2列。 這樣做有幾個原因; 數據完整性,以及更好的SQL優化。

暫無
暫無

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

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