MySQL 时间戳查询:筛选当日、昨日、本周、本月和两个日期之间的记录
在 MySQL 中,时间戳是通过 DATETIME 或 TIMESTAMP 格式存储的。要在数据库中选择记录或筛选记录,可以使用各种时间戳函数和语句。一下是本文介绍的时间戳筛选方法:
- 选择当天的记录
- 选择昨天的记录
- 选择本周的记录
- 选择本月的记录
- 选择两个日期之间的记录
阅读更多:MySQL 教程
选择当天的记录
要从 MySQL 中选择当天的记录,可以使用 CURDATE() 函数。CURDATE() 函数可以获得当前日期。与其配合使用的还有 DATE() 函数,它删除时间部分并仅保留日期部分。下面的语句可以选择数据库中今天创建的所有文章:
在这个例子中,我们使用了 DATE() 函数仅仅选择今天的日期时间部分。使用 CURDATE() 函数获得当前日期,然后与 DATE() 的返回值进行比较。如果它们相等,则选择它们。
选择昨天的记录
要选择昨天的记录,可以使用 NOW() 和 INTERVAL 1 DAY 函数。NOW() 函数返回当前日期和时间,INTERVAL 1 DAY 函数指定需要减去一天。下面是一个筛选出昨天的全部记录的 SQL 语句:
使用 NOW() 函数获取目前日期,将这个日期减去 INTERVAL 1 DAY,然后使用 DATE() 函数删除这个日期的时间部分,得到仅包含日期的时间戳。紧接着使用这个时间戳与数据库字段进行比较。
选择本周的记录
要选择本周的记录,使用 WEEK() 和 YEAR() 函数。WEEK() 函数返回一年的第几周,YEAR() 函数返回一个完整日期或日期/时间表达式的年份。下面的 SQL 语句可以选择本周的记录:
使用 YEARWEEK() 函数来返回数据库字段和当前时间的一年中的周数。此时使用了一个额外的参数 “1”。如果没有使用 Sunday 作为一周的开始(默认),则必须指定这个值。将查询结果创建每周日期数组的格式,然后筛选结果为当年的周数。
选择本月的记录
要选择本月的记录,使用 MONTH() 和 YEAR() 函数。MONTH() 函数返回给定日期月份的值。YEAR() 函数返回日期或日期/时间表达式的年份。下面是 MySQL 筛选出这个月全部记录的 SQL 语句:
在这个例子中,我们使用 YEAR() 函数返回当前年份和 MONTH() 函数返回当前月份,并将它们与数据库的 created_at 字段进行比较以获得结果。
在两个日期之间选择记录
如果我们想要在两个日期之间筛选记录,可以使用 BETWEEN 操作符。BETWEEN 操作符用于确定一个值是否在另一个两个值之间。下面是在两个日期之间筛选记录的 SQL 语句:
在这个例子中,将需要筛选的日期硬编码为字符串,并将其放在 BETWEEN 操作符中。查询将返回一个日期在 2022 年 8 月 1 日和 2022 年 8 月 31 日之间的全部记录。
总结
在 MySQL 中,有许多方法来使用时间戳查询并且筛选记录。CURDATE(), NOW(), DATE(), YEAR(), MONTH(), WEEK() 和 BETWEEN 等函数可以帮助您轻松地找到所需的记录。随着MySQL的不断更新,这些函数和语句的功能不断得到扩展和优化,因此开发者们可以根据具体场景选用最适合的方法。
如果您正在开发使用 MySQL 数据库的应用程序,这些方法应该对您有所帮助。如果您需要更多关于如何从MySQL中选择和筛选记录的信息,可以参考MySQL官方文档或网上资料。