选择出生日期为月末的所有员工

时间:2014-03-19 05:52:42

标签: sql oracle

我们假设我在Oracle中有一个名为Employee的表,其结构如下。

EMPLOYEE:
  NAME VARCHAR2(60)
  DOB  TIMESTAMP
  SAL  NUMBER

我想要一个查询,选择DOB属于月末的所有员工。

即。 (1 / 31,2 / 28或2/29,基于年份,3/31 ......)

3 个答案:

答案 0 :(得分:6)

在oracle Last_day()函数中:

SELECT * FROM table WHERE DOB=Last_day(DOB) 

答案 1 :(得分:2)

我接近这个的方法是给它增加一天,然后看看月份的那一天是否是第一天。

我不是特别了解Oracle,但是既然你在MSSQL中说了一般的想法我会做datepart(d, dateadd(day, 1, DOB)) = 1

答案 2 :(得分:0)

对于SQL,

SELECT * FROM table 
Where Datediff(dd,DOB,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,DOB)+1,0)))=0