如何从只有Month和Year的oracle中选择日期值作为输入?

时间:2011-06-29 08:46:52

标签: sql

我试图从基于月份和年份的oracle中检索日期值,仅像OCT 2009是输入,我想在我的网页上显示本月和年份的所有日子......

else if trim(cdate) <>"" then
            strQuery1 = "select rowid,Year, Name, Loca, cdate, Net_ty, eq_ty, working, ser_code, circuit_name, line_ref, no_fault from asset_hdsl where trunc(cdate,'Mon-YYYY')="
            strQuery1 = strQuery1 & "'" & to_date(cdate,'Mon-YYYY') & "'"
     response.write strQuery1

我使用此查询在ASP中收到语法错误。

请任何人帮助我。

3 个答案:

答案 0 :(得分:0)

您也可以转换为月份和年份组合,如下所示 -

Select * from MyTable where to_char(MyDate,'MON YYYY') = upper('&mon &year');

或者如果您想在clouse之间进行检查,那么您必须执行以下查询

SELECT * from MyTable WHERE MyDate between trunc(to_date('&mon &year','MON YYYY'),'MON') and last_day(to_date('&mon &year','MON YYYY'));

代替&amp; mon&amp; year,您必须提供变量名称。

@Miroprocessor 你不能申请to_date('31'+输入+ .........

在动态自然查询中,你不会总是只找到10月份,而在oracle数据库中,这个查询会给出JUN或FEB月份的错误......

你可以测试这个东西oracle数据库

答案 1 :(得分:0)

    WHERE
   enddate>=date '2009-10-01' and enddate<date '2009-11-01';

如果您不想绕过表索引并执行全表扫描,这应该适合您。

(src:How to select rows for a specific month

答案 2 :(得分:0)

  to_char(trunc(to_date('2021-03','YYYY-MM'),'Mon'),'YYYY-Mon')

它显示了 2021 年 8 月的产量

to_char(trunc(to_date('2021-03','YYYY-MM'),'MON'),'YYYY-MON')

显示 2021-AUG 的输出

to_char(trunc(to_date('2021-03','YYYY-MM'),'Month'),'YYYY-Month')

它显示了 2021 年 8 月的产量