如何得到当前的日期和时间在 MySQL?

是否有类似 DATETIME 的值或命令可用于手动查询以插入当前日期和时间?

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

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

588089 次浏览

你可以使用 NOW():

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

是的,您可以使用 CURRENT_TIMESTAMP()命令。

看这里: 日期和时间函数

使用 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。

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

您不仅可以使用 now(),还可以使用 current_timestamp()localtimestamp()。 显示时间戳不正确的主要原因是插入 NOW () 单引号!它在 MySQL Workbench 中不起作用,因为这个 IDE 为 MySQL 函数添加了单引号,我一下子没有认出来)

不要像 MySQL 工作台那样使用带单引号的函数,它不起作用。

尽管有许多公认的答案,我认为这种方式也是可能的:

按照下面的 :创建 「伺服器」

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 INTO servers (server_name, online_status, _exchange, disk_space, network_shares)
VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE');

我的环境:

带有4GB 内存的酷睿 i3 Windows 笔记本,我在 MySQL Workbench 6.2(版本6.2.5.0 Build 39764 Bits)上做了上面的示例

在数据库设计中,我强烈推荐使用 Unixtime 来实现一致性和索引/搜索/比较性能。

UNIX_TIMESTAMP()

一个总是可以 转换为人类可读的格式之后,国际化作为个人最方便。

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

如果将默认值改为 CURRENT_TIMESTAMP,效率会更高,

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

正确答案是 SYSDATE ()

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

我们可以通过将 Sysdate _ is _ now命令行参数设置为 True来改变这种行为并使 NOW()的行为与 SYSDATE()相同。

请注意,NOW()(使用 CURRENT_TIMESTAMP()作为别名)与 SYSDATE()真狡猾方面有所不同:

SYSDATE ()返回它执行的时间 的行为,该行为返回一个常量时间,该时间指示 语句开始执行的时间 函数或触发器,NOW ()返回函数或 触发语句开始执行。)

Erandi所示,最好使用 DEFAULT子句创建表,以便在插入新行时自动使用时间戳填充列:

date_time datetime NOT NULL DEFAULT SYSDATE()

如果您希望使用 新纪元格式的当前日期,那么可以使用 UNIX _ TIMESTAMP ()。例如:

select now(3), sysdate(3), unix_timestamp();

会屈服

+-------------------------+-------------------------+------------------+
| now(3)                  | sysdate(3)              | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 |       1543282808 |
+-------------------------+-------------------------+------------------+

相关阅读: