一、 語法:NUMTOYMINTERVAL ( n , 'char_expr' )
char_expr:日期描述,可以是YEAR和MONTH;
作用:可以將數字轉換成相應的日期單位時間
比如:NUMTOYMINTERVAL ( 1, 'MONTH' ) 表示一個月,注意:此時跟add_months有點區別,后續有例子會講到。
NUMTOYMINTERVAL ( 1, 'YEAR' ) 表示一年
對于day、hour、minute、second使用的是numtodsinterval函數,方法和numtoyminterval一樣。后面可以跟變量
二、interval后面只能用數字
下面是舉例:
SQL> select add_months (to_date('20110228','yyyymmdd'),1) from dual;
ADD_MONTH
---------
31-MAR-11
SQL>
SQL> select add_months(to_date('20110228','yyyymmdd'),-1) from dual;
ADD_MONTH
---------
31-JAN-11
SQL>
SQL>
SQL> select to_date('2007-02-28','yyyy-mm-dd')+numtoyminterval (1,'month') from dual;
TO_DATE('
---------
28-MAR-07
SQL> select to_date('2007-02-28','yyyy-mm-dd')-numtoyminterval (1,'month') from dual;
TO_DATE('
---------
28-JAN-07
此時,注意跟add_months返回結果的區別。
SQL> select to_date('2007-02-28','yyyy-mm-dd')+numtodsinterval(1,'day') from dual;
TO_DATE('
---------
01-MAR-07
SQL>
SQL> select to_date('2007-02-28','yyyy-mm-dd')+interval '+3' hour from dual;
TO_DATE('
---------
28-FEB-07
SQL> select to_date('2007-02-28','yyyy-mm-dd')+interval '+1' month from dual;
TO_DATE('
---------
28-MAR-07
posted @
2013-11-22 10:39 kelly 閱讀(640) |
評論 (0) |
編輯 收藏
Double類型不能直接進行比較大小。
非整型數,運算由于精度問題,可能會有誤差,建議使用BigDecimal類型,具體BigDecimal的詳細說明參考jdk開發幫助文檔。public class Test {
public static String compare(BigDecimal val1, BigDecimal val2) {
String result = "";
if (val1.compareTo(val2) < 0) {
result = "第二位數大!";
}
if (val1.compareTo(val2) == 0) {
result = "兩位數一樣大!";
}
if (val1.compareTo(val2) > 0) {
result = "第一位數大!";
}
return result;
}
public static void main(String[] args) {
String a = "200.5"; String b = "1000";
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
System.out.print(compare(data1, data2));
}
}
posted @
2013-11-07 15:42 kelly 閱讀(1010) |
評論 (0) |
編輯 收藏
經常處理金額,對于輸入需要做驗證處理,下面給出正則表達式和解釋:javascritpt的應用:var patrn=/^(-)?(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/;if (!patrn.exec('-012312123.23')) {alert('false');}else{alert('true');}解讀/^(-)?(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/^表示以什么開頭 我們這里是 - ,后面的?是表示“-”出現一次或者零次(([1-9]{1}\d*)|([0]{1})) 表示不以0開頭的數字組合或者僅出現一個0(\.(\d){1,2})?表示小數點后兩位,出現0次或者一次必須是大于0的金額正則表達式:var patrn=/^(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/;Java里的應用:Pattern pattern = Pattern.compile("^(-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2})?$");Matcher matcher = pattern.matcher("-0.11");System.out.println(matcher.matches());
posted @
2013-11-07 13:31 kelly 閱讀(2655) |
評論 (0) |
編輯 收藏
今天使用Oracle遇到了這個問題ora-01033:oracle initialization or shutdown in progress,經過分析研究終于解決了,記下來.我遇到的錯誤是ORA-00600: 內部錯誤代碼,參數: [kcratr1_lostwrt]
分析過程:
運行中輸入cmd,、輸入sqlplus /nolog,然后用 用sys登陸。
Microsoft Windows [版本 5.2.3790]
(C) 版權所有 1985-2003 Microsoft Corp.
E:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 8 14:20:05 2
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys/sys as sysdba;
已連接。
SQL> shutdown normal
ORA-01109: 數據庫未打開
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
數據庫裝載完畢。
SQL> alter database open;
出現以下錯誤:
ORA-00600: 內部錯誤代碼,參數: [kcratr1_lostwrt]
出現該錯誤是因為系統強制關機造成的!
癥狀為數據庫無法打開!
解決這個錯誤:
SQL> shutdown normal
ORA-01109: 數據庫未打開
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
數據庫裝載完畢。
SQL>recover database;
完成介質恢復
SQL> alter database open;
數據庫已更改
SQL>exit;
posted @
2013-04-08 14:53 kelly 閱讀(664) |
評論 (0) |
編輯 收藏
最近每次啟動MyEclipse的時候,都不能自動加載我自己的workspace
通常都要通過File-Switch Workspace來選擇一遍才行。
檢查了一下問題,發現配置文件X:/MyEclipse6.5/eclipse/configuration/config.ini文件中的osgi.instance.area.default屬性被修改為@user.home/workbench
osgi.instance.area.default=@user.home/workbench
等號后面修改為自己的工作空間地址就可以了osgi.instance.area.default=D\:\\Workspaces
posted @
2013-02-20 14:26 kelly 閱讀(534) |
評論 (0) |
編輯 收藏