Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL日期通配符_Mysql_Sql_Sql Server - Fatal编程技术网

Mysql 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

我正在使用sql编写一个查询,在该查询中,我试图从满足以下条件的列(日期/时间类型)中选择具有日期的记录:

  • 它可以是任何一年
  • 月份是六月、七月、八月和九月
  • 如果是六月,应该从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)