Mysql SQL日期通配符
我正在使用sql编写一个查询,在该查询中,我试图从满足以下条件的列(日期/时间类型)中选择具有日期的记录:Mysql SQL日期通配符,mysql,sql,sql-server,Mysql,Sql,Sql Server,我正在使用sql编写一个查询,在该查询中,我试图从满足以下条件的列(日期/时间类型)中选择具有日期的记录: 它可以是任何一年 月份是六月、七月、八月和九月 如果是六月,应该从6月15日起考虑 这是我试过的 Select name, surname FROM employees emp where month(emp.date_from) IN ('06' , '07' , '08', '09') 我也尝试过使用CASE,但失败了。需要帮忙吗 WHERE MONTH(emp.date_fro
- 它可以是任何一年
- 月份是六月、七月、八月和九月 如果是六月,应该从6月15日起考虑
Select name, surname
FROM employees emp
where month(emp.date_from) IN ('06' , '07' , '08', '09')
我也尝试过使用CASE,但失败了。需要帮忙吗
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';
但是,我不知道哪个性能更好。SQLServer2012
SELECT
*
FROM
employees
WHERE
DateFromParts(2000,month(date_from),day(date_from))
between '2000-06-15' and '2000-09-30'
选择2000年是因为它是闰年,将处理2000-02-29前后的闰年问题。和?这是两个具有不同日期功能的独立产品。
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)