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(),或者让数据库服务器以特定格式返回日期作为字符串。 |
|
|
|
|
|