程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORA-01810格式代碼出現兩次 的解決方案,ora-01810解決方案

ORA-01810格式代碼出現兩次 的解決方案,ora-01810解決方案

編輯:Oracle教程

ORA-01810格式代碼出現兩次 的解決方案,ora-01810解決方案


今早做一個查詢頁面時,需要查詢兩個時間區間的跨度,使用TO_DATE函數,一開始寫成了
Sql代碼
TO_DATE('2014-08-04 00:00:00','YYYY-MM-DD HH:mm:ss')

 

結果報ORA-01810 格式代碼出現兩次的錯誤.後來上網查詢後,發現是格式化字符串有問題,
其中不應該將某個格式重復兩次,否則Oracle就不知道要從哪個占位區間去解析該字段了,
正確的格式應該是這樣的,用MI來代表分鐘
正確Sql代碼 :
TO_CHAR('2014-08-04 00:00:00','YYYY-MM-DD HH:MI:SS')

如果HH對24時制支持不好的話  可以寫成下面的格式
Sql代碼 :
TO_CHAR('2014-08-04 00:00:00','YYYY-MM-DD HH24:MI:SS')

ORACLE中的格式化字符串不區分大小寫


一個很小的問題(java date類型存oracle數據庫)

修改答復:很抱歉,java.sql.Date()肯定是在什麼地方用的,好像是Hibernate的時候可以直接設值,現在不用Hibernate就只能用to_date函數了 改成下面的吧 呵呵!!

import java.util.Date;導入util包下的Date類 用於後面to_date使用

SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd hh:mm:ss");
String nowdate = sdf.format(new Date());
System.out.println(nowdate);
sql= "insert into tablename(colname) values(to_date('"+nowdate+"','yy-MM-dd hh:mm:ss'))";

statement.execute(sql);這樣肯定就好了
 

oracle 查詢語句,時間范圍

1、如果time是字符串'yyyy-MM-dd-hh-mm-ss'格式,di、d2采用字符'yyyy-MM-dd-hh-mm-ss'格式。語句可寫成如下:
sql:='select * from table1 where time between d1 and d2';
2、如果time是日期型則應該是'2012-9-8 18:55:00' 或 '08-9月 -12 08.50.45' 格式,di、d2采用字符'yyyy-MM-dd-hh-mm-ss'格式。語句可寫成如下:
sql:='select * from table1 where to_char(time,'||chr(39)||'yyyy-mm-dd-hh-mm-ss'||
chr(39)||') between d1 and d2';
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved