选择日期编号小于给定阈值的行

时间:2012-03-15 13:41:46

标签: mysql sql

我有一个时间戳列。假设我想获得年份中的日期数是< 50

1月1日= 1 12月31日= 366

因此该功能不是针对特定年份的,我希望在一天之间获得结果,例如:所有年份都是50和100。

示例

时间戳

  1. 2012-02-01
  2. 2011-02-01
  3. 2012-04-01
  4. 所以检索DAY< 50将返回结果:1和2但不是3。

3 个答案:

答案 0 :(得分:1)

您可以对DAYOFYEAR()子句中的timestamp列使用WHERE函数:

SELECT *
FROM tbl
WHERE DAYOFYEAR(timestamp_col) < 50

由于第50天发生在2月29日之前,因此不会有任何闰年考虑因素。

答案 1 :(得分:0)

试试这个:

  SELECT * FROM TableA 
  WHERE  DAYOFYEAR(DateCol) < 50 -- for < 50



SELECT * FROM TableA 
WHERE  DAYOFYEAR(DateCol) between 50 and 100 --between a day range e.g. 50 and 100

答案 2 :(得分:0)

您可以使用:

SELECT TO_DAYS(yourdate) - TO_DAYS(CONCAT(YEAR(yourdate), '-01-01'))  + 1