仅将 MySQL 时间戳日期与日期参数进行比较
在本篇文章中我们将使用 DATE()
、CAST()
和 CONVERT()
函数将 MySQL 时间戳日期仅与 date 参数进行比较。
MySQL 中的 DATE() 与 CAST() 与 CONVERT()
下面简单介绍一下各个功能。 您还可以通过单击此处找到每个示例的更多示例。
MySQL 中的 DATE() 方法
DATE()
方法从时间戳或 DateTime 表达式中提取日期部分。 它只有一个参数,必须是 DATE、TIMESTAMP 或 DATETIME 类型。
如果传递的参数不属于上述类型,则返回 NULL。 如果您使用的是 MySQL 4.0 或更高版本,则此功能可用。
MySQL 中的 CONVERT() 方法
CONVERT()
方法将特定值转换为指定的数据类型。 例如,我们可以将 TIMESTAMP 类型的值转换为 DATE 类型。
它有两个参数,而且都是必需的。 第一个参数是要转换的值,另一个是指定值转换的数据类型。
它在 MySQL 4.0 及以上版本中可用。
MySQL 中的 CAST() 方法
CAST()
方法类似于上面解释的 CONVERT()
。 我们用它来将一种数据类型的值转换为另一种数据类型。
例如,当我们将 DateTime 的值转换为 DATE 类型时。 与 CONVERT()
方法一样,它也有两个值:要转换的值和要转换成的数据类型。
如果我们有 MySQL 4.0 或以上版本,我们就可以使用这个功能。
仅将 MySQL 时间戳日期与日期参数进行比较
为了仅将 MySQL 时间戳日期与 date 参数进行比较,我们创建了一个名为 date_comparison 的表,该表具有两个属性 ID 和 COL_DATETIME。 这里ID是int类型,COL_DATETIME是TIMESTAMP。
您还可以使用以下查询创建此表,以跟随我们学习本教程。
例子:
# Create a table
CREATE TABLE date_comparison(
ID INT NOT NULL AUTO_INCREMENT,
COL_DATETIME TIMESTAMP NOT NULL,
PRIMARY KEY (ID));
# Insert data
INSERT INTO date_comparison(col_datetime)
VALUES
('2001-11-15 09:50:00'),
('2006-08-09 04:30:00'),
('2001-11-15 23:30:00'),
('2005-06-03 06:22:11'),
('2004-01-01 21:42:17');
# Show all data
SELECT * FROM date_comparison;
输出:
+----+---------------------+
| ID | col_datetime |
+----+---------------------+
| 1 | 2001-11-15 09:50:00 |
| 2 | 2006-08-09 04:30:00 |
| 3 | 2001-11-15 23:30:00 |
| 4 | 2005-06-03 06:22:11 |
| 5 | 2004-01-01 21:42:17 |
+----+---------------------+
5 rows in set (0.00 sec)
现在,我们要检索特定日期的记录; 例如,仅针对日期 2005-06-03。 我们需要将日期参数与 TIMESTAMP 类型的所有 col_datetime 列值进行比较。
使用 DATE() 仅将 MySQL 时间戳日期与日期参数进行比较
因此,我们只能按如下方式将时间戳日期与日期参数进行比较。
例子:
SELECT * FROM date_comparison WHERE DATE(col_datetime) = '2005-06-03';
输出:
+----+---------------------+
| ID | col_datetime |
+----+---------------------+
| 4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row in set (0.00 sec)
如果我们只关注日期,我们可以使用 DATE()
函数将 col_datetime 转换为日期。
例子:
SELECT ID, DATE(col_datetime) FROM date_comparison
WHERE DATE(col_datetime) = '2005-06-03';
输出:
+----+--------------------+
| ID | DATE(col_datetime) |
+----+--------------------+
| 4 | 2005-06-03 |
+----+--------------------+
1 row in set (0.00 sec)
使用 CAST() 仅将 MySQL 时间戳日期与日期参数进行比较
我们还可以使用 CAST() 函数将时间戳日期与日期参数进行比较。
例子:
SELECT ID, CAST(col_datetime AS DATE) FROM date_comparison
WHERE CAST(col_datetime AS DATE) = '2005-06-03';
输出:
+----+----------------------------+
| ID | CAST(col_datetime AS DATE) |
+----+----------------------------+
| 4 | 2005-06-03 |
+----+----------------------------+
1 row in set (0.00 sec)
使用 CONVERT() 仅将 MySQL 时间戳日期与日期参数进行比较
CONVERT()
函数还可以仅将时间戳与日期进行比较。
例子:
SELECT ID, CONVERT(col_datetime, DATE) FROM date_comparison
WHERE CONVERT(col_datetime, DATE) = '2005-06-03';
输出:
+----+-----------------------------+
| ID | CONVERT(col_datetime, DATE) |
+----+-----------------------------+
| 4 | 2005-06-03 |
+----+-----------------------------+
1 row in set (0.00 sec)
使用 BETWEEN 仅将 MySQL 时间戳日期与日期参数进行比较
如果您在 col_datetime 列(具有 TIMESTAMP 类型)上有索引,则以下解决方案将是最快的,因为它可以使用 col_datetime 列上的索引。
例子:
SELECT * FROM date_comparison
WHERE col_datetime
BETWEEN '2005-06-03 00:00:00' AND '2005-06-03 23:59:59';
输出:
+----+---------------------+
| ID | col_datetime |
+----+---------------------+
| 4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row in set (0.00 sec)
相关文章
使用 Mysqldump 备份 MySQL 中的数据
发布时间:2023/05/09 浏览次数:192 分类:MySQL
-
本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。
更新 MySQL 表中的主键
发布时间:2023/05/09 浏览次数:61 分类:MySQL
-
本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。
在 MySQL 中获取命令历史记录
发布时间:2023/05/09 浏览次数:150 分类:MySQL
-
本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史
Oracle 的 decode 函数在 MySQL 中的等价物
发布时间:2023/05/09 浏览次数:115 分类:MySQL
-
本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。
使用 Ubuntu 连接远程 MySQL 服务器的不同方法
发布时间:2023/05/09 浏览次数:97 分类:MySQL
-
在本文中我们将学习如何使用 Ubuntu 连接远程 MySQL 服务器来操作数据以及启动和停止 MySQL 服务器。
在 Linux 中安装 MySQL 客户端
发布时间:2023/05/09 浏览次数:72 分类:MySQL
-
在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。
在 MySQL 中转换为十进制
发布时间:2023/05/09 浏览次数:150 分类:MySQL
-
有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。
在 MySQL 中获取当前日期和时间
发布时间:2023/05/09 浏览次数:145 分类:MySQL
-
本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间
更改 MySQL 服务器中的 max_allowed_packet Size
发布时间:2023/05/09 浏览次数:142 分类:MySQL
-
本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。