我们假设我在Oracle中有一个名为Employee
的表,其结构如下。
EMPLOYEE:
NAME VARCHAR2(60)
DOB TIMESTAMP
SAL NUMBER
我想要一个查询,选择DOB属于月末的所有员工。
即。 (1 / 31,2 / 28或2/29,基于年份,3/31 ......)
答案 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