Mysql:选择1月22日到2月3日之间的时间戳,任何一年

时间:2015-02-03 15:54:35

标签: mysql date select

我需要比较数据库中几年内的销售额。

所以我需要选择时间戳在1月22日到2月3日范围内的行。这一年可以是任何事情。

怎么做?

示例表销售:

timestamp             sales_amount
2012-01-22 16:28:01   78
2012-10-11 16:28:06   90
2014-02-01 16:28:06   27

选择应获取第1行和第3行,并排除第2行,因为它不在指定的日期之间。

2 个答案:

答案 0 :(得分:1)

试试这个

SELECT * FROM the_table WHERE DAYOFYEAR(`the_date_column`) BETWEEN 9 AND 34 

这并不总是有效,但适用于您所需的日期范围,因为无论年份如何,该范围内任何日期的DAYOFYEAR始终是固定的。

答案 1 :(得分:0)

作为一般解决方案,您可以发挥作用,即将年份设置为特定的年份。例如:

select * from t
where str_to_date(date_format(timestamp, '1970-%m-%d %H:%i:%s'), '%Y-%m-%d %H:%i:%s')
   between '1970-01-22 00:00:00' and '1970-02-03 23:59:59';