如何获取当前日期&;MySQL中的时间?
我是否可以在手动查询中使用DATETIME之类的值或命令来插入当前日期和时间如何获取当前日期&;MySQL中的时间?,mysql,sql,datetime,Mysql,Sql,Datetime,我是否可以在手动查询中使用DATETIME之类的值或命令来插入当前日期和时间 INSERT INTO servers ( server_name, online_status, exchange, disk_space, network_shares ) VALUES( 'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME' ) 末尾引用的DATETIME值是我要添加当前日期和时间的地方。您可以使用NOW(): 是的,您可以使用C
INSERT INTO servers (
server_name, online_status, exchange, disk_space, network_shares
) VALUES(
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME'
)
末尾引用的DATETIME值是我要添加当前日期和时间的地方。您可以使用NOW()
:
是的,您可以使用
CURRENT\u TIMESTAMP()
命令
请参见此处:使用当前时间戳()或立即() 像 或
将日期时间替换为要用于插入时间的列名。您不仅可以使用
now()
,还可以使用current\u timestamp()
和localtimestamp()
。
$rs = $db->Insert('register',"'$fn','$ln','$email','$pass','$city','$mo','$fil'","'f_name','l_name=','email','password','city','contact','image'");
显示时间戳不正确的主要原因是使用单引号插入NOW()!在MySQL Workbench中它对我不起作用,因为这个IDE为MySQL函数添加了单引号,我一下子就认不出来了)
不要像MySQL Workbench中那样使用带有单引号的函数。它不起作用。尽管有许多公认的答案,但我认为这种方法也是可行的: 创建您的“服务器”表,如下所示:
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');
你的插入语句应该是::
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');
我的环境:
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');
我在MySQL Workbench 6.2(版本6.2.5.0构建397 64位)上做了上面的例子。在数据库设计中,我强烈建议使用Unixtime以获得一致性和索引/搜索/比较性能
UNIX_TIMESTAMP()
人们总是可以在事后格式化,以最方便的方式进行国际化
FROM_ UNIXTIME (unix_timestamp, [format ])
İ如果将默认值更改为
CURRENT_TIMESTAMP
则效率更高
ALTER TABLE servers MODIFY COLUMN network_shares datetime NOT NULL DEFAULT CURRENT_TIMESTAMP;
正确答案是
通过将命令行参数设置为True
,我们可以更改此行为并使NOW()
的行为与SYSDATE()
相同
请注意,NOW()
(别名为CURRENT\u TIMESTAMP()
)与SYSDATE()
的区别在于微妙的方式:
SYSDATE()返回它执行的时间。这与
behavior for NOW(),它返回一个指示
语句开始执行的时间。(在存储的
函数或触发器,NOW()返回函数或
触发语句开始执行。)
如所示,最好使用DEFAULT
子句创建表,以便在插入新行时自动使用时间戳填充列:
date_time datetime NOT NULL DEFAULT SYSDATE()
如果希望当前日期的格式为,则可以使用。例如:
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 |
+-------------------------+-------------------------+------------------+
相关的:
curdate()
你应该简短地解释你的答案。这个答案实际上意义不大!
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+