代码之家  ›  专栏  ›  技术社区  ›  Joel

mysql函数生成毫秒精度时间戳作为bigint(13)

  •  3
  • Joel  · 技术社区  · 15 年前

    我知道MySQL不支持在 millisecond 精准度。

    我的问题是:我是否可以编写一个mysql函数,将当前时间输出为bigint(13)到毫秒的精度。

    例如,as now()输出时间戳:

    mysql> select now();
    +---------------------+
    | now()               |
    +---------------------+
    | 2010-10-27 11:24:23 |
    +---------------------+
    

    我想编写一个mysql函数,比如ts(),它输出一个bigint(13),例如

    mysql> select ts();
    +---------------------+
    | ts()               |
    +---------------------+
    | 1288172185517      |
    +---------------------+
    

    我希望这样做的原因是能够用函数ts()的值填充列的默认值。

    g

    `MY_TIMESTAMP_COLUMN` BIGINT(13) DEFAULT ts(),
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   Quassnoi    15 年前

    您所发布的文章链接引用了这样一个函数的实现:

    http://bugs.mysql.com/bug.php?id=8523

    如果您将呼叫替换为 sprinf 具有 tv.tv_sec * 1000000 + tv.tv_usec ,函数将返回自epoch以来的本地时间(以微秒为单位)。