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

标签 javascript sql date jt400

我正在尝试使用 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/

相关文章:

sql - 如何在 PostgreSQL 中动态执行加权随机行选择?

mysql - 重复 key 更新

c - C语言中时间不更新

javascript - 使用 iMacros 更改 HTML

sql - SSD 将聚簇索引和非聚簇索引之间的性能差距缩小了多少?

javascript - 使用 Google Maps API 对 LatLong 进行地理编码返回未定义

javascript - 将 BASH 的日期格式转换为 JavaScript 的日期格式

java - 时区与 getRawOffset 方法混淆

javascript - 用于验证输入文本字段的单个 JavaScript 函数

javascript - 如何在 React Native 中的 <Text> 组件中插入换行符?