String 转换成精确到秒的 sql.Date类型问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String 转换成精确到秒的 sql.Date类型问题相关的知识,希望对你有一定的参考价值。
我在页面中的text文本框中取得时间,是String类型的,如:“yyyy-mm-dd hh:mm:ss”,用这个值转换成sql.date型去sql数据库中查询,但在转换中sql说转换溢出sql.date位数。该怎么解决?怎么用String的值去查询呢?我是用两个从页面取得的具体时间查询时间间区的数据,需要比较精确的……
遇到这种问题换个思路,不要想着用java的时间类型与数据库的数据类型去相互对应。而是应该把字符串直接传入数据库里面,由数据库的方法来将字符串转为时间类型,这样才不会出现错误。具体办法入下:比如页面文本框传来的时间是String time = "2008-12-13 23:32:33"(这个有可能需要你用java进行第二次格式转化方可变成这样)。然后传入查询语句,不过写where条件时应该加上where date = to_date(time,"yyyy-mm-dd hh24:mm:ss")然后就行了。 参考技术A 你可以这样操作:
mssqlserver:
cast('2010-11-13'
as
datetime)或convert(datetime,'2010-11-13')
oracle:
todate('2010-11-13')
希望我的回答能帮助到你!! 参考技术B 这样的话你在数据库建表的时候那个字段应该是Timestamp类型的,因为数据库里面date不能精确到时分秒
mybatis 插入日期类型精确到秒的有关问题
mybatis 插入日期类型精确到秒的有关问题
mybatis 插入日期类型精确到秒的问题
Mybatis 插入 数据库是为了防止插入空时报错, Mybatis 提供了一套机制,只要给定插入的字段的类型,如果为空,则它会自动处理为相应类型的默认值:
#{ordercd,jdbcType=VARCHAR}
我们都知道,Date类型是精确到时分秒的, 如果需要精确到秒以后,则需要使用 TIMESTAMP 类型
如果数据库字段类型为TIMESTAMP 则 #{operateTime,jdbcType=TIMESTAMP} 这样写是没有问题的。
而如果数据库字段类型为 Date, POJO类属性也是Date, 这时如果使用 #{operateTime,jdbcType=Date},也许插入的数据 只精确到天,时分秒都为0.
解决方法写成: #{operateTime,jdbcType=TIMESTAMP} (数据库和POJO还是Date类型)
以上是关于String 转换成精确到秒的 sql.Date类型问题的主要内容,如果未能解决你的问题,请参考以下文章