簡體   English   中英

SQL日期通配符

[英]SQL Date Wildcards

我正在使用sql編寫查詢,在該查詢中,我試圖選擇具有滿足以下條件的date_from列(日期/時間類型)的記錄:

  • 可以是任何一年
  • 幾個月是六月,七月,八月和九月
  • 如果是6月,則應從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);

UPDATE

或者將日期視為MySQL字符串

WHERE RIGHT(emp.date_from, 5) BETWEEN '06-15' AND '09-30';

我不知道哪個會更好。

SQL服務器2012

SELECT 
  * 
FROM
  employees
WHERE 
  DateFromParts(2000,month(date_from),day(date_from))
    between '2000-06-15' and '2000-09-30'

選擇2000年是因為它是leap年,並且將處理2000-02-29年左右的leap年問題。

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) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM