MySQL 使用MySQL NOW函数及其PHP和PDO变体来处理日期和时间值

MySQL 使用MySQL NOW函数及其PHP和PDO变体来处理日期和时间值

MySQL数据存储库为用户提供了多种数据类型。在大多数情况下,我们将使用大量的存储空间,具有较小的精度或范围,对于许多具有较小的大小的数据类型。日期和时间数据类型也不例外。在MySQL数据库中,我们可以使用DATE,TIME和DATETIME数据类型存储日期和时间值。但是,在数据库中处理日期和时间值需要具有适当格式的语法。在本文中,我们将通过使用MySQL NOW函数及其PHP和PDO变体来处理日期和时间值。

阅读更多:MySQL 教程

MySQL Date, Time, Datetime

MySQL支持许多存储日期和时间的数据类型。它们中的大多数支持跨时区存储,并能够处理涉及多个时区的操作,例如从不同时区导入数据。MySQL Data Types包括:DATE,TIME,DATETIME,TIMESTAMP和YEAR,我们将关注其中的DATE,TIME和DATETIME数据类型。

MySQL DATE

MySQL DATE数据类型用于存储日期值。MySQL中使用’ YYYY-MM-DD ‘格式存储日期值。例如,在下面的例子中,我们将一个日期值插入到表格中,并使用SELECT语句来检索表格中的所有数据。

CREATE TABLE `mytable` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `created_on` DATE NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `mytable`
  (`created_on`)
VALUES
  ('2019-12-22');

SELECT * FROM `mytable`;

MySQL TIME

MySQL TIME数据类型用于存储时间值。 MySQL中使用’ HH:MM:SS ‘格式存储时间值。例如,在下面的例子中,我们将一个时间值插入到表中,并使用SELECT语句来检索表中的所有数据。

CREATE TABLE `mytable` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `created_on` TIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `mytable`
  (`created_on`)
VALUES
  ('12:01:01');

SELECT * FROM `mytable`;

MySQL DATETIME

MySQL DATETIME数据类型用于存储日期和时间值。 MySQL使用“ YYYY-MM-DD HH:MM:SS”格式存储DATETIME值。例如,在下面的例子中,我们将DATETIME值插入到表中,并使用SELECT语句来检索表中的所有数据。

CREATE TABLE `mytable` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `created_on` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `mytable`
  (`created_on`)
VALUES
  ('2019-12-22 12:01:01');

SELECT * FROM `mytable`;

MySQL NOW FUNCTION

MySQL NOW() 函数返回当前日期和时间(仅当请注意该值基于服务器上当前时间的时区,而不是客户端上的时区)。它返回一个DATETIME(YYYY-MM-DD HH:MM:SS)格式的值。如果您需要在MySQL中获取当前日期和时间,那么NOW()函数是最简单的方法之一。

SELECT NOW();

MySQL NOW() Examples

现在,让我们看看一些MySQL NOW函数的示例。在下面的示例中,我们将使用一个INSERT语句和NOW函数将新行添加到表中。

INSERT INTO `mytable` (`created_on`)
VALUES (NOW());

在下面的示例中,我们将使用NOW()函数所返回的值选择表格中的所有数据。

SELECT * FROM `mytable` WHERE created_on >= NOW() - INTERVAL 1 HOUR;

PHP MySQL NOW()

PHP为我们提供了多个数据类型来存储日期和时间,例如:datetime和timestamp。这些数据类型类似于MySQL数据类型,但在使用它们时需要更多的语法。但PHP还提供了一个date函数和time函数来处理日期和时间值,并使用PHP连接MySQL处理日期和时间值。让我们看看下面的示例。

// 连接到MySQL数据库
conn = new mysqli("localhost", "username", "password", "database_name");

//检查连接是否成功
if(conn->connect_error){
    die("Connection failed: " . conn->connect_error);
}

//获取当前日期和时间current_datetime = date('Y-m-d H:i:s');
echo "Current datetime: ".current_datetime."<br>";

//将当前日期和时间插入到表中sql = "INSERT INTO mytable (created_on) VALUES ('".current_datetime."')";

if (conn->query(sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " .sql . "<br>" . conn->error;
}

//关闭连接conn->close();

在上面的示例中,我们使用PHP mysqli连接到MySQL数据库,并使用date函数获取当前日期和时间。然后,我们使用INSERT语句将其插入到mytable表中。最后,我们关闭了MySQL连接。

PHP PDO MySQL NOW()

PHP数据对象(PDO)为我们提供了一种管理和访问多种数据库的方法,而无需使用特定于数据库的API。 PDO为我们提供了多个函数来处理日期和时间值,包括NOW()函数。让我们看看下面的示例。

// 连接到MySQL数据库
try {
    conn = new PDO("mysql:host=localhost;dbname=database_name", "username", "password");
    //将错误设置为异常conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    //获取当前日期和时间
    current_datetime = date('Y-m-d H:i:s');
    echo "Current datetime: ".current_datetime."<br>";

    //将当前日期和时间插入到表中
    sql = "INSERT INTO mytable (created_on) VALUES (:current_datetime)";stmt = conn->prepare(sql);
    stmt->bindParam(':current_datetime',current_datetime);
    stmt->execute();

    echo "New record created successfully";
} catch(PDOExceptione) {
    echo "Error: " . e->getMessage();
}

//关闭连接conn = null;

在上面的示例中,我们使用PHP PDO连接到MySQL数据库,并使用NOW函数获取当前日期和时间。然后,我们使用PREPARE语句将其插入到mytable表中。最后,我们关闭了MySQL连接。

总结

在本文中,我们介绍了MySQL DATE,TIME和DATETIME数据类型,并讨论了如何使用MySQL NOW函数在数据库中处理日期和时间值。我们还看到了如何使用PHP的date函数和PDO访问MySQL来管理日期和时间值。现在,您已经掌握了处理日期和时间值的基础知识,可以在您的MySQL项目中应用它们。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程