当前位置: 首页 > 面试题库 >

从JDBC ResultSet中以字符串形式读取日期时指定的日期格式在哪里

宦宏爽
2023-03-14
问题内容

我要特别问的是,是否有人知道默认转换格式在哪里指定,是由JDBC规范在某处定义的,还是由单独的JDBC驱动程序决定的。如果是后者,那么另一个问题是Oracle
10g JDBC如何做到这一点?

**添加了1月15日:

抱歉,我认为问题已经很清楚了,但显然不是。我不是想从数据库中检索日期值,也不需要关于执行该操作的方法的建议。

我不认为这是所引用问题的重复,这就是为什么我在这里提出一个单独的问题。尽管标题几乎相同,但已通过其他方法(从数据库中检索日期值)回答了所提到的问题(无论OP打算做什么),这不是我希望知道的。

干杯,


问题答案:

好的,因此在JDBC代码中进行跟踪,看起来Oracle驱动程序对自己的格式进行了硬编码:

  int k = (((bytes[0 + j] & 255) - 100) * 100 + (bytes[1 + j] & 255)) - 100;
  String s = k + "-" + toStr(bytes[2 + j])
      + "-" + toStr(bytes[3 + j])
      + " " + toStr(bytes[4 + j] - 1)
      + ":" + toStr(bytes[5 + j] - 1)
      + ":" + toStr(bytes[6 + j] - 1)
      + ".0";

因此,据此我猜测:

  1. 在任何JDBC规范中的任何地方都未指定此行为。
  2. 每个驱动程序库都可以返回喜欢的任何格式。

我假设这些是因为不同的实现返回不同的格式。当然,在JDBC规范中某个地方仍然可能强制使用这种格式,并且某些实现是不一致的,但这似乎不太可能。我当然在JDBC规范中找不到对此的任何引用(但这并不意味着它们不存在!)。

但是,就我而言,关键是格式是在库中硬编码的,并且不能被任何环境或其他设置覆盖,但是只要驱动程序库的版本保持不变,该格式就不会在整个系统中更改。相同。



 类似资料:
  • 我有一个格式化的字符串日期 2020/04/16 (年/月/日) 我想把这个字符串解析成日期时间 显然不起作用,没有正确的日期格式。 有人知道把这个字符串解析成日期时间的最好方法是什么吗?

  • 问题内容: 我已经用python与selenium结合编写了一个脚本,以解析网页中表格中的一些可用日期。该表位于标题下。表格数据位于id内。你可以看到三个日期还有,和。我希望根据我下面的预期输出来解析和排列它们。 网页连结 到目前为止,这是我的尝试: 目前,我的输出如下: 我的预期输出: 问题答案: 尝试使用以下代码:

  • 我的日期列值是字符串格式,显示的值像“44370.4087037037”、“44370.4087384259”。而我希望它们是MM/DD/YYYY HH: MM格式。我必须在Oracle中输入它到数据库中。我的查询是- 我应该如何转换它?我试图\u DATE,convert,cast-不起作用-出现错误-[错误]执行(5:23):ORA-00907:缺少右括号

  • 我有一个文件,可以有日期修改值与日期或日期时间的格式。我曾将该值解析为: 现在,字符串也可以是

  • 我有一个变量,它包含以下值: 我目前正在使用以下代码将其格式化为字符串:.使用此代码,我得到以下值: 我需要这个更准确。我想要得到的精确值在以下精度范围内: 我在以下链接上做了一些研究:http://www.w3.org/TR/NOTE-datetime 以下是我的发现: 此配置文件没有指定可以使用多少位数来表示每秒的小数部分。允许分数秒的采用标准必须规定最小位数(大于或等于一的数字)和最大位数(