亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查詢以獲取上個月的所有行

查詢以獲取上個月的所有行

慕標琳琳 2019-12-25 10:31:47
我需要選擇數據庫中上個月創建的所有行。例如,如果當前月份是一月,那么我想返回在十二月創建的所有行,如果月份是二月,那么我想返回在一月份創建的所有行。date_created我的數據庫中有一列,其中列出了以此格式創建的日期:2007-06-05 14:50:17。
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

SELECT * FROM table

WHERE YEAR(date_created) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)

AND MONTH(date_created) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)


查看完整回答
反對 回復 2019-12-25
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

這是另一種選擇。假設您有一個索引字段DATE或DATETIME類型字段,則應使用索引,因為格式化格式的日期將在使用索引之前進行類型轉換。使用EXPLAIN查看時,您應該看到的是range查詢而不是index查詢。


SELECT

    * 

FROM

    table

WHERE 

    date_created >= DATE_FORMAT( CURRENT_DATE - INTERVAL 1 MONTH, '%Y/%m/01' ) 

AND

    date_created < DATE_FORMAT( CURRENT_DATE, '%Y/%m/01' )


查看完整回答
反對 回復 2019-12-25
?
森林海

TA貢獻2011條經驗 獲得超2個贊

替代hobodave的答案


SELECT * FROM table

WHERE YEAR(date_created) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)

AND MONTH(date_created) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)

您可以使用YEAR_MONTH作為單位,使用EXTRACT達到相同的效果,因此不需要AND,如下所示:


SELECT * FROM table

WHERE EXTRACT(YEAR_MONTH FROM date_created) = EXTRACT(YEAR_MONTH FROM CURDATE() - INTERVAL

1 MONTH)


查看完整回答
反對 回復 2019-12-25
  • 3 回答
  • 0 關注
  • 464 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號