仅将 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)
相关文章
如何在 MySQL 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:MySQL
-
当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:MySQL
-
你将了解阻止主机的原因。此外,通过使用 phpMyAdmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。