一般情况下,数据库中Date类型的字段对应的java po对象中的字段会写成String类型的,因为这样减少了java.util.Date和java.sql.Date转化所带来的误差,在对时间要求不高只需要显示年月日要求下,就可以使用String字符串代替Date类型,这样更方便进行操作。时间会经常作为查询条件来查询用户想要的结果,这时候,在页面得到的时间是一个字符串表现形式的时间,在处理程序中会涉及到将该字符串拿去和数据库中的字段比较(写查询sql)。这时候就涉及到转化的问题了。
在oracle中有两个函数可以进行操作:
1:将String转化为Date类型的函数:to_date('String类型的时间','yyyy-mm-dd');
例如,select * from tableName where tn_time <= to_date('2012-8-15','yyyy-mm-dd');这样可以查找tn_time字段中小于2012-8-15的记录
2 :将字段转化为String类型比较:to_char('字段名','yyyy-mm-dd') <= 'String类型的时间';
例如select * from tableName where to_char('tn_time','yyyy-mm-dd') <= '2012-8-15';这样可以查找tn_time字段中小于2012-8-15的记录