SQL用于多个年份的日期之间



我正在Oracle devgym上免费课程,我遇到了一个关于日期的问题,我不熟悉。如果我有一个带有日期的销售表,并且我想只显示销售表中每个可能年份的任意两个给定月份之间的日期,我该怎么做呢?这是我所拥有的,但我不知道如何做到这一点,多年来没有显示这些年之间的一切。例如,我试图在表中显示每年8月到12月之间的所有销售。如果不事先知道表中的年份,有可能做到吗?

Select *
From Sale
Where SaleDate BETWEEN '08/01/2013' and '12/31/2013'
Order by SaleDate

您可以使用EXTRACT(MONTH FROM date)获取日期的月份

Select *
From Sale
Where EXTRACT(MONTH FROM SaleDate) BETWEEN 8 and 12
Order by SaleDate

解决这个问题的最好方法是在MYSQL中使用DAYOFYEAR()函数,这使事情变得非常简单。它返回1到366之间的值,表示一年中的日期。这完全消除了年份限制,也保持了单个年份的界限。如果需要在年份之间进行搜索,则必须指定年份号。Select * From Sale Where SaleDate BETWEEN DAYOFYEAR(08/01/2013) and DAYOFYEAR(12/31/2013) Order by SaleDate;

相关内容

  • 没有找到相关文章

最新更新