2013-10-08 143 views
87

是否有像DATETIME这样的值或命令可用于手动查询以插入当前的日期和时间?MySQL - 插入当前日期/时间?

INSERT INTO servers (
    server_name, online_status, exchange, disk_space, network_shares 
) VALUES(
    'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME' 
) 

最后引用的DATETIME值是我要添加当前日期和时间的位置。

+0

http://dev.mysql.com/doc/refman/5.5/en/date-and -time-functions.html – Colandus

+6

NOW(),请参阅https://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_now ...请等待,下次放入至少对你的问题进行了一些研究,这可以很容易地搜索到(因此我只是低估了这个问题) – dirkk

+0

我的问题更多的是针对我应该如何使用它我在上面发布的语法。 –

回答

163

您可以使用NOW()

INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares, c_time) 
VALUES('m1', 'ONLINE', 'exchange', 'disk_space', 'network_shares', NOW()) 
+0

#1054 - “字段列表”中的未知列'stamp' - 有没有我失踪的东西? –

+34

只需用你的字段名称替换邮票,真的。不要复制和粘贴。 –

+4

如果是“日期”字段类型,您也可以使用'curdate()' – tandy

19

使用CURRENT_TIMESTAMP()现在()

INSERT INTO servers (server_name, online_status, exchange, disk_space, 
network_shares,date_time) VALUES('m1','ONLINE','ONLINE','100GB','ONLINE',now()) 

INSERT INTO servers (server_name, online_status, exchange, disk_space, 
network_shares,date_time) VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 
,CURRENT_TIMESTAMP()) 

将date_time替换为要用于插入时间的列名称。

-6
$rs = $db->Insert('register',"'$fn','$ln','$email','$pass','$city','$mo','$fil'","'f_name','l_name=','email','password','city','contact','image'"); 
+0

您应该很快解释您的答案。 –

+0

这个答案的确意味着很少! –

0

你不仅可以now(),也current_timestamp()localtimestamp()使用。 不正确的显示时间戳的主要原因是插入NOW()单引号!它在MySQL Workbench中不适用于我,因为此IDE为mysql函数添加了单引号,并且我没有立即识别它)

不要在MySQL Workbench中使用带单引号的函数。它不起作用。

13

即使有很多公认的答案,我觉得这种方式也是可能的:

创建'服务器'表如下

CREATE TABLE `servers` 
(
     id int(11) NOT NULL PRIMARY KEY auto_increment, 
     server_name varchar(45) NOT NULL, 
     online_status varchar(45) NOT NULL, 
     _exchange varchar(45) NOT NULL, 
     disk_space varchar(45) NOT NULL, 
     network_shares varchar(45) NOT NULL, 
     date_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 
); 

而且你INSERT声明应该是

INSERT INTO servers (server_name, online_status, _exchange, disk_space, network_shares) 
VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE'); 

我的环境:

酷睿i3 Windows笔记本电脑拥有4GB内存,我做了MySQL工作台6.2(版本6.2.5.0建立397 64位)

1

在数据库的设计上面的例子中,iIhighly推荐使用Unixtime进行一致性和索引/搜索/比较性能。

UNIX_TIMESTAMP() 

人们总是可以convert to human readable格式之后,作为国际化分别是最方便的。

FROM_ UNIXTIME (unix_timestamp, [format ]) 
1
INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares) 
VALUES('m1','ONLINE','exchange','disk_space','network_shares', NOW()) 
1

如果您更改默认值CURRENT_TIMESTAMP更效率刍议,

ALTER TABLE servers MODIFY COLUMN network_shares datetime NOT NULL DEFAULT CURRENT_TIMESTAMP;