如何在db2中将时间戳转换为ISO格式的日期?

时间:2010-10-28 03:51:25

标签: db2

例如,如果我在数据库中有一个值为2010-10-20-12.00.00.000000

的字段

如何获取包含20101020的数字。

所以我可以这样做:

SELECT * FROM file WHERE DATE(timestamp) BETWEEN 20101020 AND 20101031

但这似乎不起作用。 DATE()不会以ISO格式返回它。

1 个答案:

答案 0 :(得分:4)

我一直认为ISO格式的日期是yyyy-mm-dd。这是我们从DB2获得的表达式:

char (date_column,iso)

但我不认为你的情况需要它,你应该可以用:

SELECT * FROM file where date(timestamp) between 20101020 and 20101031

成:

select *
    from file
    where timestamp >= '2010-10-20-00:00:00.000000'
      and timestamp <= '2010-10-31-00:00:00.000000'

由于您没有对数据库中的每一行进行计算(如果DBMS不够智能,无法对您的查询进行变形,性能杀手),这可能会更快地运行。

换句话说,唯一的计算是在查询运行之前,这些文本字段将转换为时间戳。