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

3
例如,如果我在数据库中有一个字段的值为:2010-10-20-12.00.00.000000 我该如何获得一个包含20101020的数字。
所以我可以这样做:
SELECT * FROM file WHERE DATE(timestamp) BETWEEN 20101020 AND 20101031

然而,那似乎行不通。DATE()没有以ISO格式返回。

1个回答

5

我一直认为ISO格式的日期应该是yyyy-mm-dd。我们可以通过DB2表达式来获得这种格式的日期:

char (date_column,iso)

但我认为在你的情况下这并不是必需的,你应该可以通过以下方式实现:

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

into:

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

由于您不需要在数据库中的每一行进行计算(如果DBMS不够聪明,这会影响性能),因此这可能会运行得更快。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接