如何创建一个列来存储在mysql中创建行的时间?

时间:2014-10-17 02:50:38

标签: php mysql database phpmyadmin

经过大量的谷歌搜索,我找不到答案。我想在mysql中创建一个列,用于存储创建行的时间为HH:MM:SS

我正在建一个聊天室,而且该表目前有一个消息列和id

我不想使用时间戳或日期时间,因为我不想让日期月份等等只有小时分和秒。

我试过时间,但总是说时间是00:00:00

编辑:我想我希望能够只收听时间戳上的时间。

我试过了echo '<div><p>User@' . substr($value['Time'], 11) . '->' . $value['message'] . '</p></div>';但它不起作用。

1 个答案:

答案 0 :(得分:0)

编辑答案

如果要在MySQL中使用常规TIMESTAMP字段,请先创建字段。

ALTER TABLE  `YourTable` ADD  `LastAccessed` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;

设置完场后,您可以不管它。当您插入记录传递null作为值时,它将默认为当前时间。更新记录时,将调整时间。

要从TIMESTAMP字段获取时间,您需要运行您的选择查询并获取结果。为了便于说明,这看起来如下所示:

//Integrate this into your existing code
$result = mysqli_query($connection, "SELECT LastAccessed FROM YourTable"); //get only the time field for this example
$row = mysqli_fetch_array($result);
$time = new DateTime($row['LastAccessed']); //The constructor accepts the time information as an argument
echo $time->format("H:i:s"); //This is your time information.

由于您现在有一个TIMESTAMP字段,不仅数据库负责使用正确的时间更新它,而且您始终可以修改$time->format()方法的参数以生成包含时间数据的字符串以各种不同的方式。

时间戳被抽象化,您的应用程序获得灵活性。

双赢,对吧?

原始答案

在MySQL中创建一个char(8)列,然后将调用的输出发送到:

date("H:i:s");

尽管在MySQL中使用时间戳字段是最佳的,但考虑到可以在记录与之交互时更新它。您没有拥有来使用整个时间戳。