动态时间戳DB2 SQL

时间:2013-01-22 19:54:54

标签: sql datetime db2

使用DB2 SQL

我想查询昨天凌晨2点以来的记录。我想要一个动态表达式,使我不必在运行查询之前手动输入当前日期。 created_datetime属性是timestamp dataype。

例如:

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)

我知道这是一个非常基本的领域,我感到内疚地发布这个问题,但到目前为止,我的研究对我来说没有任何结果。我感谢代表我花费的每一分钟时间。

2 个答案:

答案 0 :(得分: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库:DB2 Basics: Fun with Dates and Times

那里有很多样品。

E.g。

  

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

current date + 1 YEAR 
current date + 3 YEARS + 2 MONTHS + 15 DAYS 
current time + 5 HOURS - 3 MINUTES + 10 SECONDS 

答案 1 :(得分:0)

在where子句中使用此时间戳选项尝试。

在下面的示例中查询最近24小时内的数据。

select  
   timestamp(CURRENT date - 1 days,(CURRENT time - 24 hours)),
   timestamp(CURRENT date,CURRENT time ) 
FROM 
   sysibm.sysdummy1;