【发布时间】:2015-08-11 12:27:17
【问题描述】:
我需要按日期分组的库存计数。我使用了以下查询。我的问题是找到数据的应用程序是 EST 并且数据库在 GMT 时区运行。因此,当我在应用程序中选择特定日期时,它需要获取相应的 GMT 日期并获取其计数。目前我使用的查询是
SELECT tble.dte, COUNT(DISTINCT INVENTORY_ID)As cmt
FROM ATL_GROUNDING_INFO groundinginfo
right join (SELECT
TO_DATE('03/11/2015 04:00:00','MM/DD/YYYY HH24:MI:SS') - 1 + rownum dte
FROM DUAL
CONNECT BY ROWNUM < 366
AND
TO_DATE('03/11/2015 04:00:00','MM/DD/YYYY HH24:MI:SS') - 1 + rownum <=
TO_DATE('04/02/2015 03:59:59','MM/DD/YYYY HH24:MI:SS')
) tble
ON tble.dte = (groundinginfo.DATE_TURNED_IN)
group by tble.dte
order by tble.dte desc`
但在这种情况下,计数不正确,因为 EST 3 月 11 日 = 3 月 11 日 04:00:00 AM 到 3 月 12 日 03:59:59 GMT。所以当我搜索 3 月 11 日时,我需要从 DB 获取上述日期范围之间的数据。请帮忙
【问题讨论】:
-
格式化你的代码会让它更容易阅读。您是否将数据存储在
date列中?timestamp with time zone列?还是别的什么? -
DATE_TURNED_IN 是日期 DATATYPE IN DB
-
好的。你真的想把它转换成 EST 吗?还是美国/东部(可能是 EST 或 EDT)?
-
这个查询的输入,即(to_date(?)) 是 EST。我想要它对应的 GMT 日期,然后指望那个日期。
-
好的。那么
date_turned_in总是 EST?它从来不是 EDT?