Mysql 选择天数小于给定阈值的行
我有一个时间戳列。假设我想得到一年中日数小于50的行 其中1月1日=1,12月31日=366 因此,该函数不是特定于年份的,我希望得到所有年份的日范围(例如50到100)之间的结果 范例 时间戳 2012-02-01 2011-02-01 2012-04-01 因此,在DAY<50的位置检索这些结果将返回结果:1和2,而不是3。您可以对where子句中的timestamp列使用DAYOFYEAR函数: 由于第50天发生在2月29日之前,因此不会考虑任何闰年因素。尝试以下方法:Mysql 选择天数小于给定阈值的行,mysql,sql,Mysql,Sql,我有一个时间戳列。假设我想得到一年中日数小于50的行 其中1月1日=1,12月31日=366 因此,该函数不是特定于年份的,我希望得到所有年份的日范围(例如50到100)之间的结果 范例 时间戳 2012-02-01 2011-02-01 2012-04-01 因此,在DAY
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
您可以使用以下选项:
SELECT TO_DAYS(yourdate) - TO_DAYS(CONCAT(YEAR(yourdate), '-01-01')) + 1
使用函数。呃。。。否。请参见@rs的答案。我不知道DAYOFYEAR函数。
SELECT TO_DAYS(yourdate) - TO_DAYS(CONCAT(YEAR(yourdate), '-01-01')) + 1