我只需要選擇日期字段是昨天日期的數據。我遇到的唯一問題是日期字段中的數據看起來像下面這樣20160412 062815.000只有選擇昨天日期奇怪的日期格式
我並不在乎時間,我只是想動態地搜索昨天的日期。我試過了很多CURDATE()-1,但我不確定如何只搜索字段的前8位數字。
我只需要選擇日期字段是昨天日期的數據。我遇到的唯一問題是日期字段中的數據看起來像下面這樣20160412 062815.000只有選擇昨天日期奇怪的日期格式
我並不在乎時間,我只是想動態地搜索昨天的日期。我試過了很多CURDATE()-1,但我不確定如何只搜索字段的前8位數字。
假定日期值存儲爲一個字符串,而前8個字符總是在YYYYMMDD
格式的日期,那麼你可以使用這樣的查詢:
select *
from your_table
where your_column like concat(date_format(current_date() - interval 1 day,'%Y%m%d'),'%')
此查詢的一個優點是它可以利用日期字段上的索引,與迄今爲止的其他答案不同。
將昨天的日期格式化爲數字並將日期字符串轉換爲數字。
select * from your_table
where date_format(curdate() - interval 1 day, '%Y%m%d') * 1 = date_col * 1
*1
是強制MySQL字符串轉換爲數字的數學運算。
非常感謝,像夢一樣工作。謝謝@scaisEdge和Ike Walker的建議。 –
可以使用subdate(currentDate, 1)
select * from your_table
where subdate(currentDate, 1) = DATE(your_date)
dataype是varchar? – trincot