如何在 MySQL 中反转 EXTRACT() 的输出
Posted
技术标签:
【中文标题】如何在 MySQL 中反转 EXTRACT() 的输出【英文标题】:How to reverse the output of EXTRACT() in MySQL 【发布时间】:2022-01-12 00:30:56 【问题描述】:我有以下疑问 -
SELECT NOW(6) AS output1, CONCAT(EXTRACT(YEAR_MONTH FROM NOW()), EXTRACT(DAY FROM NOW()), EXTRACT(HOUR_MICROSECOND FROM NOW(6))) AS output2;
+----------------------------+--------------------+
| output1 | output2 |
+----------------------------+--------------------+
| 2021-12-07 02:06:28.783259 | 202112720628783259 |
+----------------------------+--------------------+
现在我想反转结果 - 202112720628783259
到 2021-12-07 02:06:28.783259
。但我想不出办法。
【问题讨论】:
【参考方案1】:在output2
中,日、时、分各有一位。因此,您无法可靠地将其解析回 YYYY-MM-DD HH:MM:SS。
我建议您改用DATE_FORMAT() 及其相反的STR_TO_DATE()。
SELECT NOW(6) AS output1, DATE_FORMAT(NOW(6), '%Y%m%d%H%i%s%f') as output2
+----------------------------+----------------------+
| output1 | output2 |
+----------------------------+----------------------+
| 2021-12-06 20:44:31.927978 | 20211206204431927978 |
+----------------------------+----------------------+
【讨论】:
感谢您的回答,我知道这两个功能。我正在检查所有时间函数 - dev.mysql.com/doc/refman/8.0/en/… 几乎所有列出的函数都有一个反向函数,EXTRACT()
除外。所以我很好奇是否有任何方法可以逆转EXTRACT()
否,因为当某些日期时间组件有一位时,结果是不明确的。
感谢您的回复以上是关于如何在 MySQL 中反转 EXTRACT() 的输出的主要内容,如果未能解决你的问题,请参考以下文章
where子句中的mysql udf json_extract - 如何提高性能
如何在 MySQL Workbench 中使用 REGEXP_SUBSTR 或 REGEXP_EXTRACT 以及托管在 Google Cloud SQL 上的数据库?
如何在 Mariadb 版本 10.1.18 中使用 JSON EXTRACT
MySQL 5.7 JSON_EXTRACT 不适用于对象中的带引号的字符串:[错误]“字符串中缺少右引号”