我需要比较数据库中几年内的销售额。
所以我需要选择时间戳在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行,因为它不在指定的日期之间。
答案 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';