3

我有一张桌子,看起来像:

DAYDATE     TIMEOFDAY   USERID
18-JUL-12   Afternoon   mistu4u
18-JUL-12   Noon        mistu4u
20-JUL-12   Noon        mistu4u
21-JUL-12   Afternoon   mistu4u
11-SEP-12   Afternoon   rimo
06-AUG-12   Noon        rimo
14-JUN-12   Noon        mistu4u

现在我想获取 mistu4u 的那些值,它的 daydate 月份是“jul”。我试过了

select * from mealdb where userid='mistu4u' and substr(daydate,4,3)='jul';

但它给出了“没有找到数据”。

4

5 回答 5

3

您的安装是否区分大小写?这个 SQL 有效吗?

select * from mealdb where userid='mistu4u' and substr(daydate,4,3)='JUL';
于 2012-07-19T13:39:03.440 回答
0

尝试

SELECT *
FROM   mealdb
WHERE  userid = 'mistu4u'
AND    TO_NUMBER(TO_CHAR(daydate,'MM')) = 7
;
于 2012-07-19T13:41:21.677 回答
0

尝试

TRUNC(daydate, 'MONTH') = '01-JULY-2012'

如果 daydate 列上有任何索引,请小心。substr 将使其无用。也许,考虑使用 BETWEEN 代替。

此外,大多数解决方案将在7 月份获取任何一年中的所有记录。

于 2012-07-19T13:41:46.300 回答
0

试试这个:

select * from mealdb where userid='mistu4u' and daydate like '%JUL%';
于 2016-11-23T15:12:39.680 回答
0
select *
from mealdb
where userid='mistu4u'
and upper(daydate) LIKE '%JUL%';
于 2020-10-08T04:49:44.873 回答