我看了文档,好像只能操作date类型,可是我的数据都是保存的时间戳,请问怎样通过数据库的操作来将时间戳转换为日期字符串格式?

- 发布:2020-12-17 21:08
- 更新:2021-08-27 22:27
- 阅读:2343

行云客 - 行云客CRM,助力企业销售全流程精细化、数字化管理,从线索转入客户,转化商业机会,进入销售漏斗,推进机会赢单,设定回款计划,为销售严控把握每一步成交要点,实现业绩飞速增长!可定制开发
// 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
// dateBase为起点ISODate
let dateBase = $.dateFromParts({year: 1970, month: 1, day: 1, hour: 8, minute: 0, second: 0, millisecond: 0, timezone: 'Asia/Shanghai'})
// 时间戳转日期 = 起点ISODate + 13位的时间戳(即包括毫秒)
// timestamp为时间戳Number型字段,如果是13位就直接是'$timestamp',如果是10位,则要乘以1000,即$.multiply(['$timestamp', 1000])
let timstampToDate = $.add([dateBase, $.multiply(['$timestamp', 1000])])
return db.collection('xxxx').aggregate()
.addFields({
formatDate: $.dateToString({
date: timstampToDate,
format: '%Y-%m-%d %H:%M:%S.%L',
timezone: 'Asia/Shanghai'
})
})
.end()

行云客 - 行云客CRM,助力企业销售全流程精细化、数字化管理,从线索转入客户,转化商业机会,进入销售漏斗,推进机会赢单,设定回款计划,为销售严控把握每一步成交要点,实现业绩飞速增长!可定制开发
聚合查询
let dateBase = $.dateFromParts({year: 1970, month: 1, day: 1, hour: 8, minute: 0, second: 0, millisecond: 0, timezone: 'Asia/Shanghai'})
res = await dataBase.aggregate()
.match({
fuZeRenId: params.u_id,
create_date: dbCmd.and(dbCmd.gte(params.sTime), dbCmd.lte(params.eTime))
})
.project({
date: $.add([dateBase, $.multiply(['$create_date'])])
})
.project({
formatDate: $.dateToString({
date: '$date',
format: '%Y-%m-%d'
})
})
.group({
_id: '$formatDate',
num: $.sum(1)
})
.end()
break;
JinhuanTech (作者)
感谢,已经实现了
2020-12-29 20:55
p***@icloud.com
请问如何实现?dateFromParts 这个里面没有传入时间戳的值啊
2021-07-16 16:29
行云客
回复 p***@icloud.com: // 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
// dateBase为起点ISODate
let dateBase = $.dateFromParts({year: 1970, month: 1, day: 1, hour: 8, minute: 0, second: 0, millisecond: 0, timezone: 'Asia/Shanghai'})
// 时间戳转日期 = 起点ISODate + 13位的时间戳(即包括毫秒)
// timestamp为时间戳Number型字段,如果是13位就直接是'$timestamp',如果是10位,则要乘以1000,即$.multiply(['$timestamp', 1000])
let timstampToDate = $.add([dateBase, $.multiply(['$timestamp', 1000])])
return db.collection('xxxx').aggregate()
})
.end()
2021-08-27 22:24
不将就1207
回复 1***@qq.com: 怎么解决的?
2021-12-05 16:04