在SQL查询中将占位符值转换为所需格式

时间:2017-08-30 12:05:05

标签: sql db2

我正在使用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';

有关如何实现这一目标的任何想法?

1 个答案:

答案 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';