簡體   English   中英

如何檢索日期從一個月的第一天開始的所有行

[英]How to retrieve all the rows with date starting the first day of a month

如何檢索日期從第一天或每月16日開始的所有行?

日期如下:

2012-03-01 11:25:00
2014-05-10 13:26:00
2013-04-16 12:24:00
2017-11-03 14:21:00
2011-10-01 09:23:00

我需要獲取從第一天或一個月的16號開始的所有日期

2012-03-01 11:25:00
2013-04-16 12:24:00
2011-10-01 09:23:00

目前,我使用這樣的方法,但是我很確定這不是最優雅的方法:

SELECT * FROM table WHERE date like '%-01 %' OR date like '%-16 %' 

永遠不要像字符串那樣對待日期,而要使用日期函數來獲取所需的內容...

經驗法則:

  1. 如果是日期,請使用日期函數進行操作。
  2. 如果您需要做數學的話; 最好是數字而不是字符...
  3. 如果您永遠不會在它上面做數學運算,並且它不是日期。...將其存儲為字符。
  4. 我知道的唯一例外是自動遞增; 你永遠不應該做數學,而應該是數字的(從技術上講,引擎正在做數學,所以我猜這符合規則2)

這是從日期算起的3個示例。

WHERE extract(day from date) in (1,16)
WHERE Day(date) in (1,16) 
WHERE dayofmonth(date) in (1,16)

從DOCS: https : //dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_extract

要么

https://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_day

暫無
暫無

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

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