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

时间:2010-10-27 10:26:12

标签: sql mysql datetime timestamp

我知道mysql不支持以millisecond精度存储时间戳列。

我的问题:我可以编写一个mysql函数,它将当前时间输出为BIGINT(13),精确到毫秒级。

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

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

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

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

我想要这样做的原因是能够使用函数ts()的值填充列的默认值

e..g

`MY_TIMESTAMP_COLUMN` BIGINT(13) DEFAULT ts(),

1 个答案:

答案 0 :(得分:0)

您发布的文章链接指的是此类函数的实现:

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

如果用sprinf替换对tv.tv_sec * 1000000 + tv.tv_usec的调用,该函数将返回自纪元以来的微秒数的本地时间。