SQL当前月/年问题

时间:2011-07-13 20:36:06

标签: sql sql-server tsql

所以我有一个月份和年份分解的表格,例如,名为Month的字段中有数字7(本月),而Year字段有2011年。还有额外的月份等等。我怎么能查询这个只显示当前年份,月份?

6 个答案:

答案 0 :(得分:37)

在SQL Server中,您可以使用YEARMONTHDAY代替DATEPART
(至少在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())

答案 1 :(得分:10)

这适用于SQL Server:

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

答案 2 :(得分:5)

这应该适用于MySql

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

答案 3 :(得分:1)

怎么样:

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

应该在Oracle中运行。你用的是什么数据库?我问,因为并非所有数据库都具有相同的日期函数。

答案 4 :(得分:0)

DECLARE @CMonth int=null
DECLARE @lCYear int=null

SET @lCYear=(SELECT  DATEPART(YEAR,GETDATE()))
SET @CMonth=(SELECT  DATEPART(MONTH,GETDATE()))

答案 5 :(得分:-3)

选择* 来自your_table MONTH(mont_year)= MONTH(NOW()) 和年(mont_year)=年(现在());

注意:(month_year)表示包含日期格式的列。我认为这将解决您的问题。如果该查询不起作用,请告诉我。