Postgresql Apollo/GraphQL:用于时间戳的字段类型?

Postgresql Apollo/GraphQL:用于时间戳的字段类型?,postgresql,graphql,apollostack,Postgresql,Graphql,Apollostack,我正在将一个值存储到postgres字段中,该字段的类型为带时区的timestamp。我在Apollo模式中将字段定义为int,但在解析器中收到以下错误消息: 列“apptDateTime”的类型为带时区的时间戳,但表达式的类型为整数 通过查找,我还没有看到任何类型被引用为对应于timestamp类型的字段 对于数据库中时间戳类型的字段,Apollo模式中使用的正确字段类型是什么?我的变异工作正常,其中包括一个带有时区的时间戳类型的字段。为此,我将apptDateTime字段的模式从Int改为S

我正在将一个值存储到postgres字段中,该字段的类型为带时区的
timestamp
。我在Apollo模式中将字段定义为int,但在解析器中收到以下错误消息:

列“apptDateTime”的类型为带时区的时间戳,但表达式的类型为整数

通过查找,我还没有看到任何类型被引用为对应于timestamp类型的字段


对于数据库中时间戳类型的字段,Apollo模式中使用的正确字段类型是什么?

我的变异工作正常,其中包括一个带有时区的时间戳类型的字段。为此,我将apptDateTime字段的模式从Int改为String,并传入一个ISO字符串。Sequelize和Postgres负责将其更改为带有时区的Timestamp类型的字段

我发现这种方法可以处理表单中的输入,需要从客户端(输入表单)转换到服务器,从服务器转换到客户端(输入表单)

图ql:

    updatedAt: String
续集:

    updatedAt: {  type: Sequelize.DATE },
Postgresql:

    "createdAt" timestamp(6) with time zone DEFAULT now(),
将值转换到服务器:

  value  = dateToISO(value);
将值转换到客户端:

  if ( isNil(value) ) {
    value = '';
  } else {
    value  =  value.toLocaleDateString() +' '+ value.toLocaleTimeString();
  }
助手们:

let dateToISO = function (dateString) {
  if (!dateString) {
    return null;
  }
  let p = dateString.split(/\D/g);
  /* It's up your date on input in this case come from DD-MM-YYYY
    for MM-DD-YYY use: return [p[1], p[2], p[0]].join('-'); */
  return [p[2], p[1], p[0]].join('-'); 

};

查看关于日期标量的部分:可能最好定义一个自定义标量。我正在阅读日期和Apollo,我注意到作为理货站,需要为此添加自定义代码。我在这里找到了文档:这些文档定义了冲突解决程序映射,但没有显示如何在模式和/或其他冲突解决程序中包含冲突解决程序映射。有人能提供或链接到如何从其他Apollo解析器引用解析器映射的示例吗?json就是这样做的:您能展示一些代码吗?您不需要:require('pg').types.setTypeParser(1114,函数(stringValue){返回新日期(stringValue+“+0000”);//例如UTC偏移量。使用您想要的任何偏移量。});