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