写一个查询来显示在6月份加入的唯一学生ID。将结果按升序排列[关闭]。

问题描述 投票:0回答:1

这是我试过的

select distinct studid 
from registration 
where to_char(doj,'MM')='june'
order by studid;

但我没有得到想要的结果。

rdbms
1个回答
0
投票

有MM参数的TO_CHAR()会给你06,而不是JUNE。你可以试试下面的查询。

select distinct studid 
from registration 
where to_char(doj,'MM')='06'
order by studid;

与其使用TO_CHAR,不如使用oracle特有的函数EXTRACT------。

select distinct studid 
from registration 
where extract(month from doj) = 6
order by studid;

0
投票

我假设你运行的是Oracle,因为使用的是 to_char() 建议。

如果你想在某一年的6月加入的学生,比如说2019年,那么我会建议检查 doj 对照半开的区间(这比在列上应用日期函数更有效)。

select distinct studid
from registration
where doj >= date '2019-06-01' and doj < date '2019-07-01'
order by studid

另一方面,如果你想让学生们在6月的任何月份加入,

select distinct studid
from registration
where extract(month from doj) = 6
order by studid
© www.soinside.com 2019 - 2024. All rights reserved.