Oracle TIMESTAMP 的使用

 


TIMESTAMP( 
 fractional_seconds_precision) : 

 

  使用7-11字节保存日期时间数据,根据指定精度(0-9)来决定, 
 缺省为6,可精确到纳秒。 

 

  //1秒 = 1,000微秒 = 1,000,000毫秒 = 1,000,000,000纳秒 

 

  //JAVA:PreparedStatement.setTimestamp(1, new java.sql.Timestamp(毫秒数)); 

 

    

 

  //格式化输出毫秒,后面的‘3’指定输出精确度 

 

  SELECT to_char(systimestamp,'YYYY-MM-DD HH24:MI:SS.FF3') FROM DUAL;

本人使用Timestamp.valueOf("2009-11-15 10:25:00.000000001");


SQL使用预编译语句prepareStatement


插入到oracle 9i中的毫秒长度只有6位


 


如果要查询处于当天的时间或处于某个时间段的时间(大于等于 and  小于等于):


 


("2009-11-15 00:00:00.000000001")


("2009-11-15 23:59:59.000000001")


 


sysdate返回的是系统的时间。



systimestamp也是当前系统的时间戳。



CURRENT_TIMESTAMP 与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的。



current_date是对CURRENT_TIMESTAMP准确到秒的四舍五入。





在jave预编译语句中最好使用systimestamp



INSERT INTO table(id,create_date) values(?,systimestamp);





select to_char(current_timestamp,' yyyy-MM-dd HH24:MI:SS.FF ')  from dual