Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql Server 5.7在DATETIME(3)列上未节省毫秒_Mysql_Mysql 5.7 - Fatal编程技术网

MySql Server 5.7在DATETIME(3)列上未节省毫秒

MySql Server 5.7在DATETIME(3)列上未节省毫秒,mysql,mysql-5.7,Mysql,Mysql 5.7,我的MySQL服务器运行在Armbian仿生Ubuntu 18.04.4上,运行在橙色的Pi Zero上。MySQL服务器版本为5.7.29 我创建了一个数据类型为DATETIME3的表,也就是说,我希望以毫秒精度存储日期和时间 当我执行INSERT INTO table1 column1值'2020-02-04 12:34:46.789'时;然后我从表1中执行selectcolumn1;它表明: 2020-02-04 12:34:47 所以看起来它并没有节省毫秒?但如果我执行SELECTNOW

我的MySQL服务器运行在Armbian仿生Ubuntu 18.04.4上,运行在橙色的Pi Zero上。MySQL服务器版本为5.7.29

我创建了一个数据类型为DATETIME3的表,也就是说,我希望以毫秒精度存储日期和时间

当我执行INSERT INTO table1 column1值'2020-02-04 12:34:46.789'时;然后我从表1中执行selectcolumn1;它表明:

2020-02-04 12:34:47

所以看起来它并没有节省毫秒?但如果我执行SELECTNOW3;它表明:

2020-02-04 20:25:33.077


所以它处理毫秒数。有什么想法吗?

您的专栏似乎使用了默认的日期时间。您可以使用以下查询查看当前表架构:

DESC table_name
确保已使用DATETIME3创建表:

您可以确保输出使用的是精度。但如果值存储在DATETIME3列上,则只能获得毫秒:


我无法解释这一点。尽管我创建了DATETIME3列,甚至在执行DESC table1并获得回复DATETIME3之后,出于绝对的绝望,我尝试使用MySql Workbench之外的另一个数据库客户机。我下载了DBeaver,并编辑了表。我看到column1被设置为DATETIME,即使Workbench将其显示为DATETIME3。所以我做了DATETIME3,现在它可以工作了!因此,这一定是Workbench中的一个错误,在创建或编辑DATETIME列时,它忽略了分数秒说明符。

如果选择使用MS会发生什么IE从表1中选择微秒列1??也许这个链接可以帮助你为迟到的回复感到抱歉,扎克。如果我选择微秒列1,它将返回0。所以我想这根本不能节省毫秒的时间…谢谢塞巴斯蒂安,很抱歉回复太晚。如果我描述表1,它确实是DATETIME3。如果我从表1中选择CASTcolumn1作为DATETIME3,我可以看到毫秒,但它们都是零。另外,如果我按照Zak的建议从表1中选择MICROSECONDcolumn1,它也是零。因此,毫秒肯定不会被保存在第一位。这不是一个显示问题。插入到表中时,datetime将四舍五入到最接近的秒数。
CREATE TABLE table_name (
  column_name DATETIME(3)
)
SELECT CAST(column_name AS DATETIME(3)) FROM table_name