hsqldb查询时如果字段值以数字0开头 则查询条件无效

chooseforget 2012-09-19 10:07:55
HSQLDB出现的问题具体描述如下:
有一张alarm表,字段如下

平台日期platdate[char(8)],平台时间plattime[char(6)],商户号merid[char(8)],商品号goodsid[char(8)]

如果有一条数据为20120918,073428,3330,001
那如果查询条件为select * from alarm where plattime='073428' 或者 select * from alarm where plattime='73428' 这样都是查不出来数据的。
而且执行update的时候 update alarm set plattime='074539'之后的结果plattime的值却成了74539,而不是预期的074539;但是执行insert时的plattime为074539,insert后的结果就是带0的074539。
如果plattime的值为100000到235959则没有任何异常现象。
...全文
361 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chooseforget 2012-10-08
  • 打赏
  • 举报
回复
是呗。所以郁闷。到现在都没解决。
[Quote=引用 13 楼 的回复:]

大哥,这问题还没解决哪!!!按理说数值型才可能为丢0啊。。。

引用 12 楼 的回复:

用sql直接insert不会丢0. update会丢。
程序也是。
引用 9 楼 的回复:

你这是通过程序操作的吧,我的意思是用数据库客户端直接插入或修改是否有0丢失现象。

引用 8 楼 的回复:

insert时不会去掉0.
但是update的时候就会去掉了。引用 ……
[/Quote]
菖蒲老先生 2012-09-27
  • 打赏
  • 举报
回复
大哥,这问题还没解决哪!!!按理说数值型才可能为丢0啊。。。

[Quote=引用 12 楼 的回复:]

用sql直接insert不会丢0. update会丢。
程序也是。
引用 9 楼 的回复:

你这是通过程序操作的吧,我的意思是用数据库客户端直接插入或修改是否有0丢失现象。

引用 8 楼 的回复:

insert时不会去掉0.
但是update的时候就会去掉了。引用 7 楼 的回复:

纯字符串类型应该不会把前缀的0去掉啊,只有number型的也有可能。。。
……
[/Quote]
chooseforget 2012-09-27
  • 打赏
  • 举报
回复
用sql直接insert不会丢0. update会丢。
程序也是。
[Quote=引用 9 楼 的回复:]

你这是通过程序操作的吧,我的意思是用数据库客户端直接插入或修改是否有0丢失现象。

引用 8 楼 的回复:

insert时不会去掉0.
但是update的时候就会去掉了。引用 7 楼 的回复:

纯字符串类型应该不会把前缀的0去掉啊,只有number型的也有可能。。。
你自己手动往表里插入数据会把0自动去掉么?
[/Quote]
chooseforget 2012-09-19
  • 打赏
  • 举报
回复
insert时不会去掉0.
但是update的时候就会去掉了。[Quote=引用 7 楼 的回复:]

纯字符串类型应该不会把前缀的0去掉啊,只有number型的也有可能。。。
你自己手动往表里插入数据会把0自动去掉么?
[/Quote]
菖蒲老先生 2012-09-19
  • 打赏
  • 举报
回复
纯字符串类型应该不会把前缀的0去掉啊,只有number型的也有可能。。。
你自己手动往表里插入数据会把0自动去掉么?
MiceRice 2012-09-19
  • 打赏
  • 举报
回复
除了建议楼主修改数据库字段类型外,还真是没啥好主意。
chooseforget 2012-09-19
  • 打赏
  • 举报
回复
应用里传的就是String类型。 数据库用varcha和char都不行。
[Quote=引用 2 楼 的回复:]

没用过这数据库,不过有没有试过修改下plattime的数据类型呢,
比如其他数据库的varchar型,就是字符串,
然后在程序里传进去的也是String型,看能否解决问题。。。
[/Quote]
imlt1234 2012-09-19
  • 打赏
  • 举报
回复
varchar???
a8509190 2012-09-19
  • 打赏
  • 举报
回复
试试String 数据库里面用varchar
菖蒲老先生 2012-09-19
  • 打赏
  • 举报
回复
没用过这数据库,不过有没有试过修改下plattime的数据类型呢,
比如其他数据库的varchar型,就是字符串,
然后在程序里传进去的也是String型,看能否解决问题。。。
chooseforget 2012-09-19
  • 打赏
  • 举报
回复
请问到底该如何解决这种select无数据的情况???是HSQLDB数据库,太冷门了吧。
[Quote=引用楼主 的回复:]
HSQLDB出现的问题具体描述如下:
有一张alarm表,字段如下
SQL code

平台日期platdate[char(8)],平台时间plattime[char(6)],商户号merid[char(8)],商品号goodsid[char(8)]


如果有一条数据为20120918,073428,3330,001
那如果查询条件为select * from alarm wher……
[/Quote]
chooseforget 2012-09-19
  • 打赏
  • 举报
回复
update的时候会把第一个0去掉的。 这个表只有select操作,且select出现了问题。
[Quote=引用 10 楼 的回复:]

你可以直接用sql update 看看 是否也出现此问题 ,如果不出现此问题 你直接拼sql语句写吧。不知道对不
[/Quote]
snow-is-my-Love 2012-09-19
  • 打赏
  • 举报
回复
你可以直接用sql update 看看 是否也出现此问题 ,如果不出现此问题 你直接拼sql语句写吧。不知道对不
菖蒲老先生 2012-09-19
  • 打赏
  • 举报
回复
你这是通过程序操作的吧,我的意思是用数据库客户端直接插入或修改是否有0丢失现象。

[Quote=引用 8 楼 的回复:]

insert时不会去掉0.
但是update的时候就会去掉了。引用 7 楼 的回复:

纯字符串类型应该不会把前缀的0去掉啊,只有number型的也有可能。。。
你自己手动往表里插入数据会把0自动去掉么?
[/Quote]

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧