如果我输入的是1月,年份是2016,则需要输入16年1月1日至16年1月31日

时间:2020-01-13 10:27:47

标签: sql oracle oracle11g

我需要在我的程序中这样做。客户提到一月和一年。我的程序只收到月份和年份,但是我需要将此月份和年份从01月份转换为31个月。

2 个答案:

答案 0 :(得分:0)

编辑:此答案不适用于Oracle DB,仅适用于Java DB。

以下内容可以忽略:

根据Oracle的 java-db 文档的Month FunctionYear Function
只需在查询中添加以下条件,就可以解决您的问题:

WHERE 
  YEAR(your_date_column) = %customer_input_year_as_number% 
AND 
  MONTH(your_date_column) = %customer_input_month_as_number%

如果您可以向我们展示到目前为止已经尝试过的内容,会更容易为您提供帮助,该答案完全基于oracle文档,并且理论上应适合您的情况。

答案 1 :(得分:0)

您可以使用to_date函数将字符串转换为日期(该月的第一个日期),然后使用add_month添加1个月,然后使用-1天来计算该月的最后一天(或者使用last_day函数)如下:

Start_date := to_date(in_month|| '-' || in_year,'month-yyyy');
End_date := last_day(start_date);
-- or
End_date := add_months(start_date,1) - 1;

干杯!

相关问题