【问题标题】:How to reverse the output of EXTRACT() in MySQL如何在 MySQL 中反转 EXTRACT() 的输出
【发布时间】: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 |
+----------------------------+--------------------+

现在我想反转结果 - 2021127206287832592021-12-07 02:06:28.783259。但我想不出办法。

【问题讨论】:

    标签: mysql function datetime temporal


    【解决方案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()
    • 否,因为当某些日期时间组件有一位时,结果是不明确的。
    • 感谢您的回复
    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多