gpt4 book ai didi

javascript - 如何在sql中使用时间戳字符串查询日期时间戳字段

转载 作者:行者123 更新时间:2023-11-28 03:19:30 26 4
gpt4 key购买 nike

我正在尝试使用 jt400 npm 包在日期字段上查询 as400 sql 数据库。在表 t 上,mydate 是一个时间戳字符串,应该等于键,但由于某种原因它不起作用。在之前的查询中,我获取了 key 的值。然后将其按原样传递回此查询。如何确保日期比较有效?

const key = '123456789' // some date as a timestamp
const sql = `select * from table t where varchar_format(t.mydate, 'YYYYMMDD') = varchar_format(?, 'YYYYMMDD');`

this.pool.query(sql, [key])

然后我收到错误

Error running instance method\njava.sql.SQLException: Data type mismatch. (20190525)\n\tat com.ibm.as400.access.JDError.createSQLExceptionSubClass(JDError.java:828)\n\tat com.ibm.as400.access.JDError.throwSQLException(JDError.java:495)\n\tat com.ibm.as400.access.JDError.throwSQLException(JDError.java:464)\n\tat com.ibm.as400.access.SQLTimestamp.setTimestampFieldsFromString(SQLTimestamp.java:79)\n\tat com.ibm.as400.access.SQLTimestamp.set(SQLTimestamp.java:469)\n\tat com.ibm.as400.access.AS400JDBCPreparedStatement.setValue(AS400JDBCPreparedStatement.java:3583)\n\tat com.ibm.as400.access.AS400JDBCPreparedStatement.setString(AS400JDBCPreparedStatement.java:3231)\n\tat nodejt400.JdbcJsonClient.setParams(Unknown Source)\n\tat nodejt400.JdbcJsonClient.query(Unknown Source)\n\tat nodejt400.JT400.query(Unknown Source)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n

最佳答案

我错过了一个事实,即 key 的格式为 YYYYMMDD,而 varchar_format 正在查找日期,而不是字符串。

const sql = select * from table t where varchar_format(t.mydate, 'YYYYMMDD') = ?;

关于javascript - 如何在sql中使用时间戳字符串查询日期时间戳字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59294163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com