如何使用dayjs生成带6位微秒的PostgreSQL兼容时间戳格式?
问题解答
- 你提到的6位数字是微秒(microsecond),属于秒的小数部分,1微秒等于百万分之一秒,PostgreSQL默认的timestamp类型存储的时间精度就是到微秒级,因此会在秒后展示6位小数。
- 你之前用的格式符
X对应Unix秒级时间戳(10位数字),不是秒的小数部分,要生成符合要求的格式,需要启用dayjs的AdvancedFormat插件后使用SSSSSS格式符来获取6位微秒,实现步骤如下:
- 首先引入并注册AdvancedFormat插件(默认dayjs不包含该高级格式能力):
import dayjs from 'dayjs' import advancedFormat from 'dayjs/plugin/advancedFormat' dayjs.extend(advancedFormat)
- 修改你的日期生成函数,将格式字符串替换为
YYYY-MM-DD HH:mm:ss.SSSSSS:
const generateCurrentDateString = () => { return dayjs().format('YYYY-MM-DD HH:mm:ss.SSSSSS') }
修改后输出的格式就和你Ruby应用存入PostgreSQL的日期格式完全一致。
内容的提问来源于stack exchange,提问作者Alexander Solonik
相关产品推荐
相关产品推荐

