簡體   English   中英

Oracle SQL-將字符串轉換為日期

[英]Oracle sql - convert string to date

我在將varchar(yyyymmdd)轉換為date(yyyymmdd)時遇到問題。

我有一個帶有參數的程序(pdate varchar2,yyyymmdd格式),該程序也需要轉換為yyyymmdd格式的日期類型。 到目前為止,我嘗試過。

vdate date;

 vdate := (to_date(SUBSTR(pdate,1,4)+SUBSTR(pdate,5,2)+SUBSTR(pdate,7,2), 'yyyymmdd'));

這引發了ORA-01840錯誤:輸入值的時間長度不足以表示日期格式。

任何幫助,將不勝感激。

只需使用to_date

select to_date(MyDate, 'yyyymmdd')
from mytable

測試:

select to_date('20170831','yyyymmdd')
from dual

另外,要在Oracle中連接,請使用雙管道||

select 'Chicken'||'Food'
from dual

如果pdate在yyyymmdd之后還有其他字符,並且yyyymmdd在整個文本的開頭,則可以使用

SELECT TO_DATE(SUBSTR(pdate,1,8), 'yyyymmdd')
  FROM yourtable;

SELECT TO_DATE(SUBSTR('20170831 10:30am',1,8), 'yyyymmdd')
  FROM dual;

否則,您可以按照大多數回復的建議直接使用TO_DATE()

暫無
暫無

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

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