[英]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.