2011-07-13 15 views
20

月と年が分割されたテーブルがあります。たとえば、Monthと呼ばれるフィールドには7(この月)、Yearフィールドには2011があります。Theresはさらに月間現在の年、月だけを表示するにはどうすればよいですか?SQL現在の月/年の質問

+4

どのようなタイプのデータベースですか? –

+4

@Abe Miessler:OPの以前の質問はすべてSQL Serverの構文を使用するか、答えを受け入れるため、私はSQL Serverとしてタグ付けしています。そしてOPの状態はコメントで2005+を目標としています:http://stackoverflow.com/questions/5478386/subtracting-datetime-in-sql-query –

答えて

29

で動作するはずです。
(少なくともSQL Serverの2005/2008で、私はSQL Server 2000およびそれ以上の年齢についてはよく分からない)

私には、YEAR(getdate())がに入力する短く、優れているので、私はこれらの「短い形式」を使用して好みますDATEPART(yyyy, getdate())より読む。

だから、また、このようなあなたのテーブルを照会できます。

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'); 

は、Oracleで動作するはずです。どのデータベースを使用していますか?私はすべてのデータベースが同じ日付機能を持っているわけではないので尋ねます。

5

これは、MySQL

あなたの代わりに DATEPARTYEARMONTHDAYを使用することができますSQL Serverで
SELECT * FROM 'my_table' WHERE 'month' = MONTH(CURRENT_TIMESTAMP) AND 'year' = YEAR(CURRENT_TIMESTAMP); 
+4

これはどのデータベースに言及するべきですか –

+0

あなたはバージョンが私と同じですか?なぜDBに言及する必要がありますか? :s –

+2

これは、Oracle、DB2、MySQL、PostgreSQL、SQLite、Paradox、MS-SQL Serverで動作しますか?これらのいずれか?これらのすべて?どれでもない?これらの幾つか? – FrustratedWithFormsDesigner

-3

選択* をyour_table MONTH(mont_year)= MONTH(NOW()) とYEAR(mont_year)= YEARから(NOW ());

注:(month_year)は、日付形式を含む列を意味します。私はそれがあなたの問題を解決すると思います。そのクエリがうまくいかない場合は教えてください。

+1

3年以上前から受け入れられた回答には何も追加していません。実際には答えはOPのスキーマには当てはまりません。 – sasfrog

関連する問題