首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中从毫秒的日期时间中删除尾随零

如何在MySQL中从毫秒的日期时间中删除尾随零
EN

Stack Overflow用户
提问于 2018-04-17 09:29:30
回答 2查看 3.1K关注 0票数 3

如何消除在MySQL中以较高的日期时间精度出现的尾随零点。

样本输入/输出:

代码语言:javascript
复制
2018-04-13 13:02:32.948000     =>    2018-04-13 13:02:32.948
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-17 09:59:34

如果以毫秒直接输出DATETIME值,则MySQL将移除尾随零。

代码语言:javascript
复制
CREATE TABLE test (
    colDateTime DATETIME(6)
);

INSERT INTO test VALUES ('2018-04-17 11:12:13.444000');

现在我们使用以下SELECT语句:

代码语言:javascript
复制
SELECT * FROM test; -- output: 2018-04-17T11:12:13.444Z (0 at the end are removed by MySQL).

在最后得到零的唯一方法是使用DATE_FORMAT

代码语言:javascript
复制
SELECT DATE_FORMAT(colDateTime, '%f') FROM test; -- output: 444000

在这种情况下,您可以TRIM这个字符串值的零:

代码语言:javascript
复制
SELECT TRIM(TRAILING '0' FROM DATE_FORMAT(colDateTime, '%Y-%m-%d %H:%i:%s.%f')) FROM test;

演示: http://sqlfiddle.com/#!9/b0655f/5/2

票数 2
EN

Stack Overflow用户

发布于 2018-04-17 09:44:16

基于MySQL-Doc,对于DATETIME字段应该有一个"fsp“参数。

代码语言:javascript
复制
CREATE TABLE fractest( c1 TIME(2), c2 DATETIME(2), c3 TIMESTAMP(2) );

mysql> INSERT INTO fractest VALUES ('17:51:04.777', '2014-09-08 17:51:04.777', '2014-09-08 17:51:04.777');

mysql> SELECT * FROM fractest;
+-------------+------------------------+------------------------+
| c1          | c2                     | c3                     |
+-------------+------------------------+------------------------+
| 17:51:04.78 | 2014-09-08 17:51:04.78 | 2014-09-08 17:51:04.78 |
+-------------+------------------------+------------------------+

但是不可能动态地移除尾随零点,必须确定小数秒精度的长度。

来源:小数秒的时间值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49874516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档