1

使用 DB2 SQL

我想查询从昨天 2:00 开始的记录。我想要一个动态表达式,让我不必在运行查询之前手动输入当前日期。created_datetime 属性是时间戳数据类型。

例如:

select record_key, other_stuff
from table
where created_datetime > "2 o'clock PM yesterday"

这种动态时间戳比较甚至可能吗?最终,我希望能够做一个时间窗口,这变得很复杂!

select count(1)
from table
where created_datetime between "2 o'clock PM yesterday" and "2 o'clock PM today"

我熟悉当前日期,但我试图概念化我将如何利用它。以下内容让我很接近,但它包括运行查询前 24 小时的所有内容。

select count(1)
from table
where created_datetime between (currentdate - 1 day) and (currentdate @ 2 o'clock PM)

我知道这是一些非常基本的领域,发布这个问题我感到内疚,但我的研究到目前为止还没有为我发现任何东西。我感谢为我花费的每一分时间。

4

2 回答 2

1

试试这些

select record_key, other_stuff
from table
where created_datetime > CURRENT DATE - 10 HOURS

select count(1)
from table
where created_datetime between (CURRENT DATE - 10 HOURS) and (CURRENT DATE + 14 HOURS)

select count(1)
from table
where created_datetime between (CURRENT DATE - 1 DAYS) and (CURRENT DATE + 14 HOURS)

来自 IBM Dev Works Library:DB2 基础知识:日期和时间的乐趣

那里有成堆的样品。

例如

由于缺少更好的术语,您还可以使用英语执行日期和时间计算:

current date + 1 YEAR 
current date + 3 YEARS + 2 MONTHS + 15 DAYS 
current time + 5 HOURS - 3 MINUTES + 10 SECONDS 
于 2013-01-22T20:03:16.427 回答
0

在 where 子句中使用此 Timestamp 选项尝试此操作。

以下示例用于查询过去 24 小时之间的数据。

select  
   timestamp(CURRENT date - 1 days,(CURRENT time - 24 hours)),
   timestamp(CURRENT date,CURRENT time ) 
FROM 
   sysibm.sysdummy1;
于 2020-07-20T22:16:52.407 回答