Oracle数据库加减时间

SQL code
INSERT INTO Applies VALUES( 000001, 00000001, TO_DATE('13-DEC-1999','DD-MON-YYYY') );
在SQL PLUS中运行是提示日期格式错误
如果把13-DEC-1999改成13-12月-1999就正常通过
请问有办法把这个改成可以接受13-DEC-1999吗?


TO_DATE('13-DEC-1999','DD-MON-YYYY', 'NLS_DATE_LANGUAGE = American')



设置数据库nls_language='english'即可.

SQL>; select * from myuser;

ID USERNAME PASSWORD SJ
---------- ---------- ---------- ----------
1 John 1234 01-5月 -03
2 Jack 12345 02-5月 -03
3 Rose 2345 20-4月 -03
4 Joe 384657 01-5月 -03
5 Tom 384655 01-5月 -03
6 Jordan 384455 01-5月 -03

已选择6行。
SQL>; alter session set nls_language='english';

Session altered.
SQL>; select * from myuser;

ID USERNAME PASSWORD SJ
---------- ---------- ---------- ---------
1 John 1234 01-MAY-03
2 Jack 12345 02-MAY-03
3 Rose 2345 20-APR-03
4 Joe 384657 01-MAY-03
5 Tom 384655 01-MAY-03
6 Jordan 384455 01-MAY-03

6 rows selected.

SQL>; insert into myuser values(7,'King','12567',to_date('02-MAY-2003','dd-MON-yy
yy'));

1 row created.

SQL>; alter session set nls_date_format='dd-MON-yyyy';

Session altered.

SQL>; select * from myuser;

ID USERNAME PASSWORD SJ
---------- ---------- ---------- -----------
1 John 1234 01-MAY-2003
2 Jack 12345 02-MAY-2003
3 Rose 2345 20-APR-2003
4 Joe 384657 01-MAY-2003
5 Tom 384655 01-MAY-2003
6 Jordan 384455 01-MAY-2003
7 King 12567 02-MAY-2003

7 rows selected.





关于时间/日期的操作

1.日期时间间隔操作

当前时间减去7分钟的时间

select sysdate,sysdate - interval \'7\' MINUTE from dual

当前时间减去7小时的时间

select sysdate - interval \'7\' hour from dual

当前时间减去7天的时间

select sysdate - interval \'7\' day from dual

当前时间减去7月的时间

select sysdate,sysdate - interval \'7\' month from dual

当前时间减去7年的时间

select sysdate,sysdate - interval \'7\' year from dual

时间间隔乘以一个数字

select sysdate,sysdate - 8 *interval \'2\' hour from dual


2.日期到字符操作

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

select sysdate,to_char(sysdate,\'yyyy-mm-dd hh:mi:ss\') from dual

select sysdate,to_char(sysdate,\'yyyy-ddd hh:mi:ss\') from dual




















select sysdate,to_char(sysdate,\'yyyy-mm iw-d hh:mi:ss\') from dual

参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)


3. 字

符到日期操作

select to_date(\'2003-10-17 21:15:37\',\'yyyy-mm-dd hh24:mi:ss\') from dual

具体用法和上面的to_char差不多。


4. trunk/ ROUND函数的使用

select trunc(sysdate ,\'YEAR\') from dual

select trunc(sysdate ) from dual

select to_char(trunc(sysdate ,\'YYYY\'),\'YYYY\') from dual


5.oracle有毫秒级的数据类型

--返回当前时间 年月日小时分秒毫秒

select to_char(current_timestamp(5),\'DD-MON-YYYY HH24:MI:SSxFF\') from dual;

--返回当前 时间的秒毫秒,可以指定秒后面的精度(最大=9)

select to_char(current_timestamp(9),\'MI:SSxFF\') from dual;






pre=con.prepareStatement("SELECT * FROM users WHERE cardid="+"'"+sg+"'",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

if(rs.getRow()==0){
JOptionPane.showMessageDialog(this, "学号不存在,请先注册!", "提示", JOptionPane.WARNING_MESSAGE);
return;

box2.setBounds(20,250,1000,38);

相关文档
最新文档