还有一个没搞懂的问题,to_char(ac.key_date,'yyyymm') in (to_char(key_date,'yyyymm'),to_char(key_date,'yyyymm')) in 中的两个值为一个相同的字符串, 为什么不用to_char(ac.key_date,'yyyymm')=to_char(key_date,'yyyymm')
SQL> select 1 from dual where to_char(sysdate,'yyyymm') in (to_char(sysdate,'yyyymm'),to_char(sysdate,'yyyymm')); 1 --------- 1SQL> 我觉得不会出现你所描述的问题啊
to GerryYang(轻尘) :我昨晚解决这个问题了,就是像前辈那样写的,但是用的是to_date方法,就是把他们都变成日期格式了,谢谢您。
to 大家:我刚刚学习orcale,做asp的开发,很多东西不明白,还请各位前辈多多指教了,呵呵。
难道这样写就可以引用一个变量" & key_date & ",这个变量从session中得到也可以,在程序中声明之后再赋值也可以?
现在我胡乱的猜测,难道to_char(key_date,'yyyymm')这样的形式,如果key_date是数据库中字段的话,绝对没有问题,但是如果不是的话,就一定要写成to_char('" & key_date & "','yyyymm')的形式,当然key_date不能为空。
用户输入http://......./actdtl/adt2000dl.asp?key_date=200403的话,我希望to_char(key_date,'yyyymm')的返回值是'200403'这种形式,带单引号'的这种形式(VARCHAR2类型),但是现在看来并不是。我只是想知道,在这种情况下它的返回值是什么呢??
--------
'200411' 注意返回的结果是有单引号的SQL>
--------
04-03-01
04-03-02
04-03-03
04-03-04
04-03-05
04-03-08
04-03-09
04-03-10
04-03-11
04-03-12
04-03-15
KEY_DA
------
200403
200403
200403
200403
200403
200403
200403
200403
200403
200403
200403
in 中的两个值为一个相同的字符串,
为什么不用to_char(ac.key_date,'yyyymm')=to_char(key_date,'yyyymm')
---------
1SQL>
我觉得不会出现你所描述的问题啊
而我用的变量key_date = Request("key_date"),是通过get方法传过来的,就出现问题了。
虽说我的程序已经交了,但是这点并不明白。
如果说to_char(ac.key_date,'yyyymm')之后的值像下面这样的话
KEY_DA
------
200403
那么是不是就可以说to_char(ac.key_date,'yyyymm')='200403'呢?
......wherer to_date(to_char(ac.key_date,'yyyymm'),'yyyymm') in (to_date('" & key_date & "','yyyymm'),to_date('" & key_date & "','yyyymm'))......
结果如下:
第一种写法(在Oracle中可以查询出数据,而且是正确的)
3* where to_char(ac.key_date,'yyyymm') in ('&key_date','&key_date')
SQL> /
key_dateに値を入力してください: 200405
key_dateに値を入力してください: 200405
旧 3: where to_char(ac.key_date,'yyyymm') in ('&key_date','&key_date')
新 3: where to_char(ac.key_date,'yyyymm') in ('200405','200405') EMP_NO NAME NORMAL_TIME
------ ------------------------------ -----------
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7EMP_NO NAME NORMAL_TIME
------ ------------------------------ -----------
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 719行が選択されました。我在ASP中这样写
to_char(ac.key_date,'yyyymm') in ('key_date','key_date')
查询结果是什么也没有查到,但是SQL语句没有报错。第二种写法(在Oracle中可以查询出数据,而且是正确的)
3* where to_char(ac.key_date,'yyyymm') in (&key_date,&key_date) and ac.emp_no=per.emp_no(+) and a
SQL> /
key_dateに値を入力してください: 200405
key_dateに値を入力してください: 200405
旧 3: where to_char(ac.key_date,'yyyymm') in (&key_date,&key_date) and ac.emp_no=per.emp_no(+) an
新 3: where to_char(ac.key_date,'yyyymm') in (200405,200405) and ac.emp_no=per.emp_no(+) and ac.cEMP_NO NAME NORMAL_TIME
------ ------------------------------ -----------
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7EMP_NO NAME NORMAL_TIME
------ ------------------------------ -----------
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 7
13590 小林 豊 719行が選択されました。我在ASP中这样写
where to_char(ac.key_date,'yyyymm') in (key_date,key_date)
SQL语句报错ORA-01861第三种情况我这么写(在Oracle中就不行)
3* where to_char(ac.key_date,'yyyymm') in (to_char('&key_date','yyyymm'),to_char('&key_date','yyyymm'))
SQL> /
key_dateに値を入力してください: 200405
key_dateに値を入力してください: 200405
旧 3: where to_char(ac.key_date,'yyyymm') in (to_char('&key_date','yyyymm'),to_char('&key_date','
新 3: where to_char(ac.key_date,'yyyymm') in (to_char('200405','yyyymm'),to_char('200405','yyyymm
where to_char(ac.key_date,'yyyymm') in (to_char('200405','yyyymm'),to_char('200405','yyyymm')) and
*
行3でエラーが発生しました。:
ORA-01481: 数値書式モデルが無効です第四种情况我这么写(在Oracle中也不行)
3* where to_char(ac.key_date,'yyyymm') in (to_char(&key_date,'yyyymm'),to_char(&key_date,'yyyymm'
SQL> /
key_dateに値を入力してください: 200405
key_dateに値を入力してください: 200405
旧 3: where to_char(ac.key_date,'yyyymm') in (to_char(&key_date,'yyyymm'),to_char(&key_date,'yyyymm'))
新 3: where to_char(ac.key_date,'yyyymm') in (to_char(200405,'yyyymm'),to_char(200405,'yyyymm'))
where to_char(ac.key_date,'yyyymm') in (to_char(200405,'yyyymm'),to_char(200405,'yyyymm')) and ac.e
*
行3でエラーが発生しました。:
ORA-01481: 数値書式モデルが無効です剩下的几种情况还没有试验,有时间我马上试试