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
);
10 回答
你可以使用
NOW()
:使用 CURRENT_TIMESTAMP() 或 now()
喜欢
要么
将date_time替换为要用于插入时间的列名 .
即使有许多已接受的答案,我认为这种方式也是可能的:
创建 'servers' 表如下 :
你的 INSERT 陈述应该是 :
My Environment:
具有4GB RAM的Core i3 Windows笔记本电脑,我在MySQL Workbench 6.2(版本6.2.5.0 Build 397 64位)上做了上述示例
是的,您可以使用
CURRENT_TIMESTAMP()
命令 .看这里:Date and Time Functions
在数据库设计中,我非常推荐使用Unixtime来实现一致性和索引/搜索/比较性能 .
之后可以随时使用convert to human readable格式,以最方便的方式进行国际化 .
如果您将更改默认值更改为
CURRENT_TIMESTAMP
,则效率更高,您不仅可以使用
now()
,还可以使用current_timestamp()
和localtimestamp()
. 显示时间戳不正确的主要原因是插入NOW() with single quotes !它没有立刻认识到它)不要在MySQL Workbench中使用带单引号的函数 . 它不起作用 .
正确答案是SYSDATE() .
我们可以通过将sysdate_is_now命令行参数设置为
True
来更改此行为并使MySQL使NOW()
的行为与SYSDATE()
相同 .请注意
NOW()
(其中CURRENT_TIMESTAMP()
为别名)与 subtle 的 subtle 方式不同:如Erandi所示,最好使用
DEFAULT
子句创建表,以便在插入新行时使用时间戳自动填充列:如果您希望当前日期为epoch格式,则可以使用UNIX_TIMESTAMP() . 例如:
会屈服
有关: