2011-02-17 64 views
45

我在查詢時遇到問題,或者在尋找正確的功能時發生問題。從一年前到現在選擇所有記錄

谷歌並沒有做太多幫助,所以我就問在這裏:

我已經充斥着大量行的表,我需要選擇所有小於一歲,直到行現在。

該表(稱爲orders)的DateTime列的名稱爲order_date,這是確定何時放置訂單的字段。

因此:如何從現在到全年前選擇所有具有order_date的記錄?

+1

你嘗試google搜索 「SQL BETWEEN」?因爲不知道SQL基礎的人有很多資源。 – dctucker 2014-04-17 17:21:00

回答

128
select * 
from orders 
where order_date >= DATE_SUB(NOW(),INTERVAL 1 YEAR); 
+1

我認爲curdate()也可以在NOW()中使用 – Dotnet 2011-02-17 10:33:28

+0

@Dotnet,你好Dotdot,你知道order_date是什麼數據類型?它也可以是DATE TIME Field,所以爲什麼冒險?儘管您將其數據類型更改爲DATE TIME,但您不必修改代碼。得到? – 2015-04-20 07:31:10

-4

我希望它可以幫助你:

select * 
from table 
where (order_date BETWEEN '2/15/2011 3:36:18 PM' AND '2/17/2011 9:00:00 PM') 
7
SELECT * FROM order WHERE order_date >= curdate() - interval 1 year; 
1

要正月一年前

SELECT DATE_SUB(DATE_FORMAT(CURRENT_DATE,'%Y-%m-01'),INTERVAL 1 YEAR);