使用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)
我知道这是一个非常基本的领域,我感到内疚地发布这个问题,但到目前为止,我的研究对我来说没有任何结果。我感谢代表我花费的每一分钟时间。
答案 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;