Sql 如何从某一天没有数据的表中获取两个日期之间的值
我通过分组日期从我的表中得到一个总数。例如,当我尝试获取“08.03.2013”和“22.03.2013”之间的值时,如果您查看下图。没有2013年3月18日和2013年3月20日的数据 但我需要那个日期,因为我在前端使用highchart,不想在前端处理这个问题 你有什么建议吗 谢谢Sql 如何从某一天没有数据的表中获取两个日期之间的值,sql,oracle-sqldeveloper,sql-scripts,Sql,Oracle Sqldeveloper,Sql Scripts,我通过分组日期从我的表中得到一个总数。例如,当我尝试获取“08.03.2013”和“22.03.2013”之间的值时,如果您查看下图。没有2013年3月18日和2013年3月20日的数据 但我需要那个日期,因为我在前端使用highchart,不想在前端处理这个问题 你有什么建议吗 谢谢 SELECT TO_CHAR(CR_DATE, 'DD') DAY, TO_CHAR(CR_DATE, 'MM') MONTH, TO_CHAR(CR_DATE, 'YY') YEAR, count(STAB_
SELECT TO_CHAR(CR_DATE, 'DD') DAY, TO_CHAR(CR_DATE, 'MM') MONTH, TO_CHAR(CR_DATE, 'YY') YEAR,
count(STAB_ID) AS total FROM paytrans
WHERE acct_id = 1552 AND status = 'DND_FNSH' and CR_DATE > '08.03.2013' AND CR_DATE < '22.03.2013'
GROUP BY TO_CHAR(CR_DATE, 'YY'), TO_CHAR(CR_DATE, 'DD'), TO_CHAR(CR_DATE, 'MM')
ORDER BY year, month, day
[为@art编辑]
SELECT TO_CHAR(CR_DATE-1, 'DD') + LEVEL DAY, TO_CHAR(CR_DATE, 'MM') MONTH, TO_CHAR(CR_DATE, 'YY') YEAR,(cr_date-1) + LEVEL AS cr_date
FROM
(
SELECT
To_Date('08.05.2013', 'DD.MM.YYYY') end_date,
To_Date('08.04.2013', 'DD.MM.YYYY') cr_date
FROM dual
)
CONNECT BY LEVEL <= (end_date - cr_date)+1
这是根据您的日期而定的日历。您可以在查询中比较日期和日历日期:
SELECT cr_date
, to_char(cr_date, 'DD') curr_day
, to_char(cr_date, 'MM') curr_month
, to_char(cr_date, 'YYYY') curr_year
FROM
(
SELECT (cr_date-1) + LEVEL AS cr_date
FROM
(
SELECT To_Date('08.05.2013', 'DD.MM.YYYY') end_date
, To_Date('08.04.2013', 'DD.MM.YYYY') cr_date
FROM dual
)
CONNECT BY LEVEL <= (end_date - cr_date)+1
)
/
CR_DATE CURR_DAY CURR_MONTH CURR_YEAR
-------------------------------------------------
4/8/2013 08 04 2013
4/9/2013 09 04 2013
4/10/2013 10 04 2013
....
....
4/30/2013 30 04 2013
5/1/2013 01 05 2013
5/2/2013 02 05 2013
...
...
5/8/2013 08 05 2013
制作一个表格并将其加入到itThanks以获取您的答复,但如果月份与日期'08.05.2013'、'DD.MM.YYYY'结束日期、日期'08.04.2013'、'DD.MM.YYYY'cr不同,则会出现问题_date@talhakosen-有什么不同?我总是测试我的查询。。。该查询提供了开始日期2013年4月8日'08.04.2013'和结束日期2013年5月8日08.05.2013之间的所有日期。无论您使用哪一个日期,查询都适用于任何日期。只需确保格式和开始/结束日期正确即可。见上面修改的日期。@talhakosen明白了。这只是格式问题。请看修改后的答案。