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类型问题的主要内容,如果未能解决你的问题,请参考以下文章

crontab,精确到秒的定时任务

vue基于vant封装可精确到秒的时间选择器

oracle 存储日期精确到哪位

java Date日期总结的一些转换的方法

java 时间戳与日期字符串相互转换

Js倒计时代码精确到毫秒。