我正在使用sql编写一个查询,其中我试图选择具有满足以下条件的date_from列(类型为日期/时间)的记录:
这是我尝试过的......
Select name, surname
FROM employees emp
where month(emp.date_from) IN ('06' , '07' , '08', '09')
我也尝试过使用CASE但失败了。有什么帮助吗?
答案 0 :(得分:3)
WHERE MONTH(emp.date_from) IN (7,8,9)
OR (MONTH(emp.date_from) = 6 AND DAY(emp.date_from) >= 15);
<强>更新强>
或者在MySQL
WHERE RIGHT(emp.date_from, 5) BETWEEN '06-15' AND '09-30';
我不知道哪个会表现得更好。
答案 1 :(得分:0)
Sqlserver 2012
SELECT
*
FROM
employees
WHERE
DateFromParts(2000,month(date_from),day(date_from))
between '2000-06-15' and '2000-09-30'
选择2000年是因为它是闰年,将在2000-02-29左右处理闰年问题。
答案 2 :(得分:-1)
SELECT firstname,
lastname,
dateofbirth
FROM patient
WHERE Day(dateofbirth) >= CASE
WHEN Month(dateofbirth) = '06' THEN 15
END
OR Month(dateofbirth) IN ( '07', '08', '09' )
ORDER BY Month(dateofbirth)