📜  mysql 从时间戳中选择不同的日期 - SQL (1)

📅  最后修改于: 2023-12-03 14:44:28.589000             🧑  作者: Mango

MySQL 从时间戳中选择不同的日期

在 MySQL 中,时间戳通常以 Unix 时间戳的形式存储。Unix 时间戳是指从 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)开始计算时经过的秒数。在 MySQL 中,时间戳通常存储为 INT 或 BIGINT 类型的整数值。

有时我们需要从时间戳中选择不同的日期,例如选择某个月、某一天或某一个小时。下面将介绍如何在 MySQL 中实现这些功能。

选择某个月

要选择某个月,我们需要使用 MySQL 中的 FROM_UNIXTIME 函数。FROM_UNIXTIME 函数将 Unix 时间戳转换为日期时间格式。我们可以使用 %Y-%m 格式的参数获取年份和月份的部分。具体用法如下:

SELECT FROM_UNIXTIME(timestamp, '%Y-%m') AS month FROM table_name;

其中,timestamp 是存储时间戳的字段,table_name 是要查询的表名。这条 SQL 语句将返回存储在 timestamp 字段中所有记录的年份和月份,例如:

| month    |
------------
| 2022-01  |
| 2022-01  |
| 2021-12  |
| 2021-12  |
选择某一天

要选择某一天,我们需要和选择某个月时一样使用 FROM_UNIXTIME 函数。不同的是,我们需要使用 %Y-%m-%d 格式的参数获取年份、月份和日期的部分。具体用法如下:

SELECT FROM_UNIXTIME(timestamp, '%Y-%m-%d') AS date FROM table_name;

其中,timestamp 是存储时间戳的字段,table_name 是要查询的表名。这条 SQL 语句将返回存储在 timestamp 字段中所有记录的日期,例如:

| date       |
--------------
| 2022-01-08 |
| 2022-01-07 |
| 2022-01-06 |
| 2022-01-05 |
选择某一个小时

要选择某一个小时,我们需要使用 FROM_UNIXTIME 函数和 %Y-%m-%d %H 格式的参数。%H 获取小时的部分。具体用法如下:

SELECT FROM_UNIXTIME(timestamp, '%Y-%m-%d %H') AS hour FROM table_name;

其中,timestamp 是存储时间戳的字段,table_name 是要查询的表名。这条 SQL 语句将返回存储在 timestamp 字段中所有记录的小时,例如:

| hour            |
-------------------
| 2022-01-08 13   |
| 2022-01-08 12   |
| 2022-01-08 11   |
| 2022-01-08 10   |
| 2022-01-08 09   |
| 2022-01-08 08   |
| 2022-01-08 07   |
| 2022-01-08 06   |
| 2022-01-08 05   |
| 2022-01-08 04   |
| 2022-01-08 03   |
| 2022-01-08 02   |
| 2022-01-08 01   |
| 2022-01-08 00   |