回答

收藏

Java:ResultSet的getString()在环境之间有所不同

技术问答 技术问答 198 人阅读 | 0 人回复 | 2023-09-14

我有一个SQL查询,该查询返回oracle Date对象。9 L- s2 c/ l1 _7 k7 ?) t, I' V5 |3 i9 j
从双重选择sysdate
, c% U* o/ \4 ^; t/ ^- h
目前有执行以下操作的代码:. M6 R$ T" ]& f* x# C
字符串s = rs.getString(“ sysdate”);0 U4 ^3 i5 }" }, f6 _; t
问题是,这将在不同的环境中返回不同的日期格式返回不同的日期格式。( D( ]/ `# @, _( x
一种环境会回来: 2011-01-31 12:59:59.0# k( b; L& n& \1 G' N
另一个会回到更奇怪的东西 2011-1-31 12.15.32.0 时间用小数点分隔), P8 M0 k4 s; A2 f' y* v6 t; e& A8 E$ d
也许这与语言环境有关。java报告中的英语(加拿大),另一个是英语(美国)。
6 y6 o! I) T2 \当结果集将日期对象转换为字符串时,格式从何而来?
5 ^# y# J' \: V$ a7 Y                                                                : O$ B4 u' g  N7 T% r0 c& ?
    解决方案:                                                               
' g' |1 y5 @7 S  b                                                                从Oracle的站点:9 B$ m0 J- x$ p+ r  f6 [
连接数据库时,JDBC服务器将是类库NLS_LANGUAGE和NLS_TERRITORY参数设置为和运行JDBC驱动程序的Java
3 N& t3 X8 B; c8 z6 XVM语言环境对应。
: y0 z! m0 H# R9 ^- R) ?  A是的,响应的区别在于计算机指定了不同的语言环境。正确的解决方案应该是使用getDate()或getTimestamp(),或者让数据库服务器以特定格式返回日期作为字符串。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则