0

以下是我的查询:

SELECT A.WEEK, B.NAME, A.GENDER
 FROM TABLE A, TABLE2 B
 WHERE A.WEEK BETWEEN TO_CHAR (TO_DATE ('2013051'), 'yyyymmw')
             AND TO_CHAR (TO_DATE ('2013063'), 'yyyymmw')
  AND A.WEEK = B.WEEK;

在这两个表中,WEEK 列中的数据记录为 '2013051' 为 5 月的第 1 周,或 '2013063' 为 6 月的第 3 周。WEEK 列中的所有其他数据都以相同的格式记录,由 7 个字符组成。最后一个字母代表它所属的周数。

当我运行此查询时,它显示

ora-01861 文字与格式字符串不匹配

谁能帮我这个?

4

2 回答 2

4

你的括号不正确。

SELECT A.WEEK, B.NAME, A.GENDER
 FROM TABLE A, TABLE2 B
 WHERE A.WEEK BETWEEN TO_CHAR (TO_DATE ('2013051', 'yyyymmw'))
             AND TO_CHAR (TO_DATE ('2013063', 'yyyymmw'))
  AND A.WEEK = B.WEEK;

TO_DATE 函数需要两个参数 - 要转换的字符串和格式字符串。

于 2013-07-05T02:16:04.017 回答
1

我没有预言机可以在这里测试它,但检查 TO_DATE 文档似乎你错过了它的格式。这是我尝试转换的方法:

WHERE A.WEEK BETWEEN TO_CHAR (TO_DATE ('2013051','yyyymmw'))
             AND TO_CHAR (TO_DATE ('2013063', 'yyyymmw'))

这是我检查过的两个链接:

http://www.techonthenet.com/oracle/functions/to_char.php http://www.techonthenet.com/oracle/functions/to_date.php

希望能帮助到你。

于 2013-07-05T02:15:32.757 回答