确定某一年最后一天
sql
SELECT DATE_SUB('2023-12-31', INTERVAL DAYOFMONTH('2023-12-31')-1 DAY) AS last_day_of_2023;
查询数据
查询某一年最后一天的所有数据
sql
SELECT *
FROM table_name
WHERE date_column = (SELECT DATE_SUB('2023-12-31', INTERVAL DAYOFMONTH('2023-12-31')-1 DAY));
查询某一年最后一天的特定列数据
sql
SELECT col1, col2
FROM table_name
WHERE date_column = (SELECT DATE_SUB('2023-12-31', INTERVAL DAYOFMONTH('2023-12-31')-1 DAY));
优化查询
使用索引
在 date_column 列上创建索引可以提高查询速度。
使用覆盖索引
如果只查询特定列,可以创建包含这些列的覆盖索引。
示例
假设我们有一个名为 sales 的表,其中包含日期和销售额数据。以下查询返回 2023 年最后一天的销售额:
sql
SELECT SUM(sales_amount)
FROM sales
WHERE date_column = (SELECT DATE_SUB('2023-12-31', INTERVAL DAYOFMONTH('2023-12-31')-1 DAY));