1.插入时间
/* 时间的数据类型为timestamp */ /* MySQL */ INSERT INTO lastlog(LAST) VALUES(CURRENT_TIMESTAMP()); /* Oracle */ insert into lastlog(last) values(to_date('2010-09-09 19:20:20','yyyy-mm-dd hh24:mi:ss'))
2.读取时间
/* MySQL */ select * from lastlog; /* Oracel */ select to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'') time from dual;
关于Java操作数据库时间
SQL 定义了三种与时间有关的数据类型:
DATE 由日、月和年组成。
TIME 由小时、分钟和秒组成。
TIMESTAMP 将 DATE 和 TIME 结合起来,并添加了纳秒域。
标准 Java 类 java.util.Date 可提供日期和时间信息。但由于该类包含 DATE 和 TIME 信息而没有 TIMESTAMP 所需的纳秒,因此并不与上述三种 SQL 类型完全相配。
因此我们定义了 java.util.Date 的三种子类。它们是:
1.有关 SQL DATE 信息的 java.sql.Date
2.有关 SQL TIME 信息的 java.sql.Time
3.有关 SQL TIMESTAMP 信息的 java.sql.Timestamp
对于 java.sql.Time,java.util.Time 基本类的小时、分钟、秒和毫秒域被设置为零。 对于 java.sql.Date,java.util.Date 基本类的年、月和日域被分别设置为 1970 年 1 月 1 日。这是在 Java 新纪元中的“零”日期。java.sql.date中的日期可以和标准的SQL语句中含有日期的字段进行比较.java.sql.Timestamp 类通过添加纳秒域来扩展 java.util.Date。
1.oracle默认的系统时间就是sysdate函数,储存的数据形如25-3-200510:55:33
2.java 中取时间的对象是java.util.Date。
3.oracle中对应的时间对象是java.util.Date,java.sql.Time,java.sql.Timestamp、它们都是是java.util.Date的子类。
4.oracle中与date操作关系最大的就是两个转换函数:to_date(),to_char()。to_date()一般用于写入日期到数据库时用到的函数。to_char()一般用于从数据库读入日期时用到的函数。
最后3个对学习有帮助的SQL语句:
select * from tpu_change where changed_id in ( select max(t.changed_id) from tpu_change t where pid is not null group by t.pid ) and pid=23930007 ; select * from ( select t.*,row_number()over(partition by pid order by changed_id desc) r from tpu_change t where pid is not null ) where r=1 and pid=23930007 select pid,count(1) cnt from tpu_change group by pid having count(1)>=2 order by 2 desc