考虑ISO8601日期并想使用Typeorm和PostgreSQL进行查询]
if (orderInput.begining && orderInput.ending)
query.andWhere(`order.createdAt
BETWEEN to_timestamp(${orderInput.begining} / 1000 )
AND to_timestamp(${orderInput.ending} / 1000 );
`);
这些是我的论点:"2010-12-24T21:32:33.477Z"
"2019-12-24T21:32:33.477Z"
这是底层查询和错误:
query failed: SELECT DISTINCT "distinctAlias"."order_id" as "ids_order_id" FROM (SELECT "order"."id" AS "order_id", "order"."createdAt" AS "order_createdAt"
FROM "order" "order" INNER JOIN "ware" "ware" ON "ware"."id"="order"."wareId" WHERE "order"."organizationId" = $1 AND "order"."createdAt"
BETWEEN Wed Dec 25 2019 01:02:33 GMT+0330 (Iran Standard Time)
AND Wed Dec 25 2019 01:02:33 GMT+0330 (Iran Standard Time) ;) "distinctAlias" ORDER BY "order_id" ASC LIMIT 25 -- PARAMETERS: ["8fd87ced-eb58-4460-b74e-d5a2b1491622"]
error: { error: syntax error at or near "Dec"
我想是因为没有将参数包装在''(qoutes)中我不知道如何将参数作为标准ISO8606 Date
(typescript)与''(qoutes)传递给typescript,然后传递给PostgreSQL
打字稿和PostgreSQL都非常了解ISO8606,因此PostgreSQL不需要to_timestamp()。所以这就像一个chram: