2014-03-07 121 views
-1

我有两个来自用户输入的日期。我想从JSP这两个日期来获取和创建一个视图,显示的每一天,自己平日:从时间段获取星期几

2013-3-1 MONDAY 
2013-3-2 TUESDAY 
2013-3-3 WEDNESDAY 

用户输入的日期并给出JSP,说:

where start='2013-3-1' and end='2013-3-3' 

如何做到这一点?

+0

这种操作的术语是“日期算术”。 –

回答

0

试试这个:

select to_char(dt, 'yyyy-mm-dd') as date, to_char(dt, 'Day') as day 
from (select ('2013-03-01'::date + i) dt 
     from generate_series(0,'2013-03-03'::date - '2013-03-01'::date) as t(i)) as t; 

你应该参数查询的日期部分。

在这个查询中有几个值得记住的要点。

  • 日期计算:减去两个日期成为两个日期之间的日期数。
  • generate_series(0, n)产生0,1,...,N
+0

谢谢。如何将文本类型更改为字符变化。或相反亦然。 – user3382017

+0

如何更改'generate_series()'的日期计算的日期类型postgresql – user3382017

+0

中的日期类型是不必要的。您可以直接使用日期/时间戳作为参数。 –

1

这可以是简单的:
Remove blank-padding from to_char() output

一般最好是:在这个问题以后

SELECT to_char(d, 'YYYY-MM-DD') AS day_txt 
    , to_char(d, 'FMDay')  AS weekday 
FROM generate_series('2013-03-01'::date 
        , '2013-03-03'::date 
        , interval '1 day') d; 

更多细节与实际date types一起操作,而不是与文本表示,但我不明白的细节或您的要求。