如何在memsql中存储时间戳?

How to store timestamp in memsql?

我想将数据从 crate 数据库导出到 memsql。 crate 数据库基于 UTC 以毫秒为单位存储时间戳。

然而,当将其导入 memsql 数据库时,我的值被清零了。

我应该如何在 memsql 中导入我的时间戳?

您可以将它们作为字符串插入,格式如下:

YYYY-MM-DD HH:mm:ss

因此,1489582041572timestampInMs 应该变成:2017-03-15 12:47:21


在 typescript 中,我在 moment.js 的帮助下为它创建了一个转换脚本 via:

const convertTimestamp = (timestampInMs: number): string => {
    return moment.utc(timestampInMs).format("YYYY-MM-DD HH:mm:ss");
};

假设"milliseconds based on UTC"你的意思是自纪元以来的毫秒数,你可以将它们加载到整数列中,然后使用FROM_UNIXTIME将其转换为时间戳类型(http://docs.memsql.com/docs/from_unixtime - 需要几秒钟,所以除以 1000)。

您可以加​​载到暂存 table,然后使用 FROM_UNIXTIME 插入 -select,或者在加载整数值时使用计算列分配时间戳值: create table t (mytime_unixtime bigint, mytime as from_unixtime(mytime_unixtime) persisted datetime)