2013-10-08 144 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;