M*******r 发帖数: 522 | 1 User 输入start date/end date, 现在算出相差的天数.
*****************************************************
select (to_date('?','mmddyyyy')-to_date('?','mmddyyyy'))
from MY_TABLE
where due_date<=to_date('?','mmddyyyy')
AND due_date>=to_date('?','mmddyyyy')
*****************************************************
现在问题是前面的JSP只给pass两个parameter, 第一个是end date,第二个是start date.
怀疑如果这个sql就这样写的话,后两个"?"就得不到赋值. 也就是说,整段sql中只允许出
现两个"?". 请问如何把这个天数差算出来.
新手上路,请多指教. //bow | c***y 发帖数: 114 | 2 天数差怎么是to_date-to_date?
【在 M*******r 的大作中提到】 : User 输入start date/end date, 现在算出相差的天数. : ***************************************************** : select (to_date('?','mmddyyyy')-to_date('?','mmddyyyy')) : from MY_TABLE : where due_date<=to_date('?','mmddyyyy') : AND due_date>=to_date('?','mmddyyyy') : ***************************************************** : 现在问题是前面的JSP只给pass两个parameter, 第一个是end date,第二个是start date. : 怀疑如果这个sql就这样写的话,后两个"?"就得不到赋值. 也就是说,整段sql中只允许出 : 现两个"?". 请问如何把这个天数差算出来.
| M*******r 发帖数: 522 | 3 sorry, 没说清楚,to_date() 只是一个function, 转换date格式的...
改成start date/end date, 省得混淆。
【在 c***y 的大作中提到】 : 天数差怎么是to_date-to_date?
| s***e 发帖数: 284 | 4 你select出什么了?
【在 M*******r 的大作中提到】 : User 输入start date/end date, 现在算出相差的天数. : ***************************************************** : select (to_date('?','mmddyyyy')-to_date('?','mmddyyyy')) : from MY_TABLE : where due_date<=to_date('?','mmddyyyy') : AND due_date>=to_date('?','mmddyyyy') : ***************************************************** : 现在问题是前面的JSP只给pass两个parameter, 第一个是end date,第二个是start date. : 怀疑如果这个sql就这样写的话,后两个"?"就得不到赋值. 也就是说,整段sql中只允许出 : 现两个"?". 请问如何把这个天数差算出来.
| M*******r 发帖数: 522 | 5 这么说吧,User Input, End_Date=01012006, Start_Date=01012004
JSP把这两个值赋给{ select (to_date('?','mmddyyyy')-to_date('?','mmddyyyy'))}
中的第一个问号和第二个问号,就应该能计算出这两个日期之间相差
多少天。
问题是,JSP只给两个值,而我的sql如果要照下面那样写的话会有4个问号。
where clause里面的两个问号是必须的 -- 这样就会导致后面两个问号无值
可赋。JSP是别人的,不可动,现在怎么求这个天数...
【在 s***e 的大作中提到】 : 你select出什么了?
| s***e 发帖数: 284 | 6 我是奇怪你这个查询跟
select 6
from TABLE
一样,根本没TABLE什么事啊
【在 M*******r 的大作中提到】 : 这么说吧,User Input, End_Date=01012006, Start_Date=01012004 : JSP把这两个值赋给{ select (to_date('?','mmddyyyy')-to_date('?','mmddyyyy'))} : 中的第一个问号和第二个问号,就应该能计算出这两个日期之间相差 : 多少天。 : 问题是,JSP只给两个值,而我的sql如果要照下面那样写的话会有4个问号。 : where clause里面的两个问号是必须的 -- 这样就会导致后面两个问号无值 : 可赋。JSP是别人的,不可动,现在怎么求这个天数...
| M*******r 发帖数: 522 | 7 hoho, 其实是有关系的。要从table里选取一组数据,然后根据天数算平均值。
选取数据谁都会,也懒得在这里跟大家讲。问题的关键在于怎么把天数算出来。
有什么高见么?
【在 s***e 的大作中提到】 : 我是奇怪你这个查询跟 : select 6 : from TABLE : 一样,根本没TABLE什么事啊
| n*******s 发帖数: 4 | 8 Not sure if I understand your question correctly.
If you just want to know the difference between INPUT start_date and end_date,
you should select from DUAL. Looks like you are not asking for this though.
If you have at least these three columns in your MY_TABLE table,
MY_TABLE.START_DATE, MY_TABLE.END_DATE, MY_TABLE.DUE_DATE,
If you want to know when MY_TABLE.DUE_DATE falls in between the INPUT
start_date and end_date, the difference between MY_TABLE.START_DATE and
MY_TABLE.END_DATE.
Your input | M*******r 发帖数: 522 | 9 MY_TABLE里只有一个Due_Date, 我现在要用这个Due_Date来跟User Input的
两个天数比较,如果Due_Date落在这两个日期中间,那么算个count(1),
然后根据天数算出平均值来。这就是为何不用dual而用MY_TABLE.
MY_TABLE里并没有start_date和end_date这样两个column.
【在 n*******s 的大作中提到】 : Not sure if I understand your question correctly. : If you just want to know the difference between INPUT start_date and end_date, : you should select from DUAL. Looks like you are not asking for this though. : If you have at least these three columns in your MY_TABLE table, : MY_TABLE.START_DATE, MY_TABLE.END_DATE, MY_TABLE.DUE_DATE, : If you want to know when MY_TABLE.DUE_DATE falls in between the INPUT : start_date and end_date, the difference between MY_TABLE.START_DATE and : MY_TABLE.END_DATE. : Your input
| n*******s 发帖数: 4 | 10 Hm, I wasn't thinking.
Is there anything like "$1", "$2" for the virtual parameters instead of
quesiton mark for JDBC plus ORACLE?
【在 M*******r 的大作中提到】 : MY_TABLE里只有一个Due_Date, 我现在要用这个Due_Date来跟User Input的 : 两个天数比较,如果Due_Date落在这两个日期中间,那么算个count(1), : 然后根据天数算出平均值来。这就是为何不用dual而用MY_TABLE. : MY_TABLE里并没有start_date和end_date这样两个column.
|
|