2011-07-13 88 views
20

因此,我有一個表將月份和年份細分,例如月份字段中的數字爲7(本月),年份字段爲2011.另外還有幾個月等等。我怎樣才能查詢這隻顯示當前的年份,月份?SQL當前月/年問題

+4

這是什麼類型的數據庫? –

+4

@Abe Miessler:我標記爲SQL Server,因爲所有OP的以前的問題要麼使用SQL Server語法,要麼接受了答案。和OP的狀態目標2005+在評論:http://stackoverflow.com/questions/5478386/subtracting-datetime-in-sql-query –

回答

29

工作在SQL Server,你可以使用YEARMONTHDAY而不是DATEPART
(至少在SQL Server 2005/2008,我不知道有關SQL Server 2000及以上)

我更喜歡用這些「短表」,因爲對我來說,YEAR(getdate())較短輸入,更好地閱讀比DATEPART(yyyy, getdate())。從your_table 其中MONTH(mont_year)= MONTH(NOW()) 和YEAR(mont_year)= YEAR

select * 
from your_table 
where month_column = MONTH(getdate()) 
and year_column = YEAR(getdate()) 
10

這應該用於SQL Server工作:

SELECT * FROM myTable 
WHERE month = DATEPART(m, GETDATE()) AND 
year = DATEPART(yyyy, GETDATE()) 
1

如何:

Select * 
from some_table st 
where st.month = to_char(sysdate,'MM') and 
    st.year = to_char(sysdate,'YYYY'); 

應在甲骨文工作。你使用的是哪個數據庫?我問,因爲不是所有的數據庫都有相同的日期函數。

5

這應該在MySQL

SELECT * FROM 'my_table' WHERE 'month' = MONTH(CURRENT_TIMESTAMP) AND 'year' = YEAR(CURRENT_TIMESTAMP); 
+4

你應該提及哪個數據庫這是爲 –

+0

你的版本是一樣的我的?爲什麼我需要提到一個數據庫? :s –

+2

這是否適用於Oracle,DB2,MySQL,PostgreSQL,SQLite,Paradox,MS-SQL Server?任何這些?所有這些?都不是?其中一些? – FrustratedWithFormsDesigner

-3

SELECT * (NOW:

所以,你還可以查詢您的表像這樣());

注意:(month_year)表示包含日期格式的列。我認爲這會解決你的問題。讓我知道如果該查詢不起作用。

+1

您從3年前以前沒有向接受的答案添加任何內容,事實上,您的答案沒有解決OP中的方案。 – sasfrog

相關問題