我需要创建一个列(例如 idletime
)它将存储小于或大于24小时的时间值。当我尝试插入大于24的值(例如“80:00:00”、“129:23:12”等)时,得到以下错误代码:
java.sql.SQLException: Illegal hour value '80' for java.sql.Time type in value '80:00:00.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
.....
我在互联网上搜索发现,时间数据类型的范围是从00:00:00到23:59:59,而不是24:00:00。
有什么办法可以解决我的问题吗?我正在存储过程中执行此插入查询。
3条答案
按热度按时间anhgbhbe1#
由于异常“java.sql.sqlexception”的性质,您的sql客户机似乎有问题。
进入一个空的控制台或另一个sqlclient并尝试执行您试图执行的操作
例如:
mysql使用hhh:mm:ss'格式,大于24小时。更多信息请参见文档
gdx19jrr2#
我想我理解这个用例,但是我不确定我会选择使用时间数据类型来解决这个问题。它也可以是某种int数据类型,并以秒为单位命名为空闲时间
如果需要更精确,也可以选择毫秒。
yv5phkfx3#
在mysql中,您可以存储
80:00:00
为了time
数据类型。使用查询获取日期时间时:
输出:
我注意到当以上述格式存储时,存储时间将增加80小时。例如:
如果您存储了80小时,mysql所做的就是设置当前时间+您的输入。当您要检查添加时的日期和时间
80:00:00
它将显示上述输出,也可以存储最大值838:59:59
小时。sql小提琴