Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当数据插入行中时自动填充时间的MySQL列_Mysql - Fatal编程技术网

当数据插入行中时自动填充时间的MySQL列

当数据插入行中时自动填充时间的MySQL列,mysql,Mysql,我想问一下,是否可以创建一个MySQL表,在插入新行时自动填充时间列。我通过各种网站研究了时间戳和从DATETIME中选择时间的方法,但不幸的是,我找不到我需要的东西。我正在使用工作台 这是我的表查询 create table dev_monitor( device_id varchar(50), power_coms float, date DATE, time TIME); 我使用了一个自动填充日期的触发器 CREATE TRIGGER task_creation_timestamp BE

我想问一下,是否可以创建一个MySQL表,在插入新行时自动填充时间列。我通过各种网站研究了时间戳和从DATETIME中选择时间的方法,但不幸的是,我找不到我需要的东西。我正在使用工作台

这是我的表查询

create table dev_monitor(
device_id varchar(50),
power_coms float,
date DATE,
time TIME);
我使用了一个自动填充日期的触发器

CREATE TRIGGER task_creation_timestamp BEFORE INSERT ON dev_monitor 
FOR EACH ROW
SET NEW.date = NOW();
但现在我只剩下时间专栏了

这是我将使用的查询

insert into dev_monitor(device_id, power_coms)
values('aircond2', '3.5');
请注意,我只想插入设备id和功耗,每当我插入这两个数据时,我都会尝试让表自动填充日期和时间,但要在单独的列中。

如本文所示,您可以使用时间戳。我不知道是否可以只填写时间,但您只能在以后选择时间,或者在不需要日期信息的情况下创建一个视图


e、 g.
创建视图v1作为选择*,时间(yourDateTime)作为表中的时间

鲁本。您可以尝试以下代码

DELIMITER ;;
CREATE TRIGGER device
BEFORE INSERT ON device
FOR EACH ROW
BEGIN
    IF new.date IS NULL THEN
        SET NEW.date = CURDATE();
        SET NEW.time = CURTIME();
    END IF;
END
;;

您可以在此链接上进一步参考

您可以编辑表的结构,将“日期”和“时间”列合并为一列,使用数据类型“DATETIME”,并将默认值设置为“NOW()”或“CURRENT_TIMESTAMP()”

谢谢您的输入。如果真的没有一个明确的时间列,也许我会使用timestamp。我查看了视图,它对我来说是新事物,但并不能真正解决我的好奇心。我会继续查的。THX有了视图,我想创建一个视图,从您的表中选择内容,并将内容更改为SELECT*,TIME(yourDateTime)为TIME谢谢,这非常有效。我之前无意中发现了这个链接,但无法理解它。没错,这是一个很好的方法,但我更倾向于分别为日期和时间设置两个单独的列。谢谢你的建议!没问题。可能会在某个地方帮助某人。