SQL检查日期是否在此日历年或之前的日历年

如何检查日期是否在此日历年或之前的日历年。SQL检查日期是否在此日历年或之前的日历年

I.E. 12月31日,今年>指明MyDate> 1月1日,去年

回答:

标准SQL的方式是使用EXTRACT:

select * 

from t

where extract(year from t.thedate) = extract(year from CURRENT_TIMESTAMP) or

extract(year from t.thedate) = extract(year from CURRENT_TIMESTAMP) - 1

并非所有的数据库都支持这些功能;但都有办法以某种方式提取日期。例如,许多支持year函数。

回答:

你可以做这样的事情

SELECT * FROM YourTable 

WHERE TO_DATE("FROM-DATE") < DateColumn AND TO_DATE("END-DATE") > DateColumn

这是Oracle,可以肯定的MySQL SQLite的或其他数据库有这个功能,

回答:

对于SQL Server,你可以使用DATEDIFF

WHERE DATEDIFF(year,myDate,CURRENT_TIMESTAMP) in (0,1) 

DATEDIFF(year,...有效地计算日期之间的年度转换次数(或换句话说,新年前夕的数量 在午夜)。

对于较大的表,其中索引可以帮助您的查询,我们就需要自行改造CURRENT_TIMESTAMP和比较myDate对这些计算值:

WHERE myDate >= DATEADD(year,DATEDIFF(year,'20010101',CURRENT_TIMESTAMP),'20000101') AND 

myDate < DATEADD(year,DATEDIFF(year,'20010101',CURRENT_TIMESTAMP),'20020101')

回答:

在SQL Server中,你可以这样做:

DECLARE @yourDate DATETIME; 

SELECT @yourDate = '2012-06-02';

SELECT CASE YEAR(@yourDate)

WHEN YEAR(GETDATE()) THEN 'Same Year'

WHEN YEAR(GETDATE()) - 1 THEN 'Last Year'

ELSE 'Other Year'

END AS YourColumn;

如果你不得不寻找未来的日期,或者过去一年以上,你也可以很容易地扩大这个范围。

其他RDBMS将提供类似的功能来检查您的日期的年份。

以上是 SQL检查日期是否在此日历年或之前的日历年 的全部内容, 来源链接: utcz.com/qa/258339.html

回到顶部