参数绑定 stmt2 查询,如何获取数据库精度

新增 TAOS_FIELD_DB 枚举类型,没办法解决查询语句有 join 的情况,不具备扩展性。
另外为何不复用 TAOS_FIELD_QUERY 呢?

目前有下面几种方案

  1. 用新的api获取dbmeta
int stmt_get_db_meta(TAOS_STMT2 *stmt, void * dbMeta)
  1. 还是复用taos_stmt2_get_fields,吧TAOS_FIELD_DB类型改成TAOS_FIELD_QUERY(已有)
  pField->field_type = TAOS_FIELD_QUERY,;
  pField->type = TSDB_DATA_TYPE_NULL;  // use null type to avoid unexpected behavior
  pField->scale = 0;
  pField->bytes = 0;
  pField->name=dbName;
  pField->precision = (uint8_t)dbCfg.precision;
  1. 从绑定时入手:

当buffer_type = TSDB_DATA_TYPE_TIMESTAMP

typedef struct TAOS_STMT2_BIND {
  int      buffer_type;
  void    *buffer;
  int32_t *length;
  char    *is_null;
  int      num;
} TAOS_STMT2_BIND;

按照TSDB_DATA_TYPE_VARCHAR类型绑定时间戳,在内部根据db的precision进行转换成相应的时间戳写入

# 代表s
2026-05-14T15:30:45Z
# 代表ms
2026-05-14T15:30:45.123Z
# 代表us
2026-05-14T15:30:45.123456Z
# 代表ns
2026-05-14T15:30:45.123456789Z

或者通过length制定精度,通用做法

length 3 -> ms
length 6 -> us
length 9 -> ns