-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'

这该怎么做?

4

2 回答 2

1

这可以更简单:

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;

后面这个问题下的更多细节:
Remove blank-padding from to_char() output

通常最好使用实际date类型而不是文本表示进行操作,但我不了解细节或您的要求。

于 2014-03-07T06:57:43.010 回答
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
于 2014-03-07T02:29:34.390 回答