本文为 【MySQl】 关于时间的查询
📌博主主页:一个肥鲇鱼
👉策略模式之Map+函数式接口:策略模式之Map+函数式接口
👉感受 Lambda 之美:体验一下Lambda之美吧,优雅编程
👉Bean转换工具:Mapstruct使用教程
查询最近一分钟的所有记录
SELECT * FROM table_name WHERE date_column >= DATE_SUB(NOW(), INTERVAL 1 MINUTE);
查询最近一小时的所有记录
SELECT * FROM table_name WHERE date_column >= DATE_SUB(NOW(), INTERVAL 1 HOUR);
解释:DATE_SUB函数是MySQL中的一个日期函数,用于在指定的日期上减去一定的时间间隔,返回计算后的日期。
其语法为:DATE_SUB(date, INTERVAL value unit),其中date表示要进行计算的日期,value表示要减去的时间间隔,unit表示时间间隔的单位(如YEAR、MONTH、DAY、HOUR、MINUTE、SECOND等)。
查询昨天的SQL
SELECT * FROM table_name WHERE DATE(date_column) = DATE_SUB(CURDATE(), INTERVAL 1 DAY);
解释:这条SQL语句使用了DATE_SUB函数,它用于从当前日期中减去指定的时间间隔。在这个例子中,我们使用了INTERVAL 1 DAY,这意味着我们要从当前日期中减去1天,以查询昨天的数据。DATE函数用于将日期列的时间戳截断为日期部分,以便与DATE_SUB函数返回的日期部分进行比较。
查询今天的SQL
SELECT * FROM table_name WHERE DATE(date_column) = CURDATE();
解释:这条SQL语句使用CURDATE函数,它返回当前日期。我们使用它来查询今天的数据。DATE函数用于将日期列的时间戳截断为日期部分,以便与CURDATE函数返回的日期部分进行比较。
查询上个月的SQL
SELECT * FROM table_name WHERE DATE_FORMAT(date_column, '%Y-%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m');
解释:这条SQL语句使用了DATE_FORMAT函数,它用于将日期列的时间戳格式化为指定的日期格式。在这个例子中,我们使用了'%Y-%m'格式,它将日期格式化为年份和月份。我们使用了DATE_SUB函数来减去1个月的时间间隔,然后将其格式化为'%Y-%m',以便与日期列的格式进行比较。
查询本月的SQL
SELECT * FROM table_name WHERE DATE_FORMAT(date_column, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m');
解释:这条SQL语句与上个月的SQL非常相似,但是我们没有使用DATE_SUB函数来减去时间间隔,而是直接使用NOW函数获取当前日期。我们将当前日期格式化为'%Y-%m',以便与日期列的格式进行比较。
查询上年的SQL
SELECT * FROM table_name WHERE YEAR(date_column) = YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR));
解释:这条SQL语句使用了YEAR函数,它从日期列的时间戳中提取年份。我们使用DATE_SUB函数来减去1年的时间间隔,然后使用YEAR函数从结果中提取年份。我们将这个年份与日期列的年份进行比较,以查询上年的数据。
查询今年的SQL
SELECT * FROM table_name WHERE YEAR(date_column) = YEAR(NOW());
解释:这条SQL语句与上年的SQL非常相似,但是我们没有使用DATE_SUB函数来减去时间间隔,而是直接使用NOW函数获取当前日期的年份。我们将这个年份与日期列的年份进行比较,以查询今年的数据。
版权归原作者 一个肥鲶鱼 所有, 如有侵权,请联系我们删除。