我正在使用db2数据库。我必须查询名为“sample”的表格,其中一列CRDATTIM
定义为TIMESTAMP
。
我使用这样的占位符从java查询表:
select * from sample where crdattim=? and recordcd='C';
CRDATTIM字段的值具有以下TIMESTAMP格式。
CRDATTIM RECORDCD
2014-08-08 12:12:39.621060 O
2014-08-27 07:01:46.814080 T
2014-08-27 06:41:47.404080 T
2014-08-27 07:14:47.871080 T
2014-08-28 02:23:50.390080 T
2014-08-28 06:27:58.298080 T
2014-09-02 08:57:37.607080 T
从java端开始,CRDATTIM
的值以稍微不同的格式传递。例如2014-08-08-12.12.39.621060
而不是2014-08-08 12:12:39.621060
。我没有在java端转换为所需的格式2014-08-08-12.12.39.621060
,而是想在数据库端转换它。
我尝试了以下查询,但没有奏效。
select * from sample where VARCHAR_FORMAT(crdattim,'YYYY-MM-DD HH24:MI:SS.FF6')=? and recordcd='C';
有关如何实现这一目标的任何想法?
答案 0 :(得分:1)
您可以执行以下操作
select * from sample where VARCHAR_FORMAT(crdattim,'YYYY-MM-DD-HH24.MI.SS.FF6')=? and recordcd='C';
或
select * from sample where to_char(crdattim,'YYYY-MM-DD-HH24.MI.SS.FF6')=? and recordcd='C';