在 couchbase 查询之间
between query in couchbase
我正在使用 couchbase DB,我写了 namedQuery buy 我遇到了语法错误。
我的日期格式:yyMMdd_HHmm
id :XX_YY_0038_2019-03-10@N181025_1636
SELECT meta().id FROM `TABLE_NAME` WHERE meta().id.SUBSTR(23,33) BETWEEN '181025_1650%' AND '181025_1730'
SELECT meta().id FROM `TABLE_NAME` WHERE substr(meta.id(),23,33) BETWEEN '181025_1711' AND '181025_1751'
SELECT meta().id FROM `TABLE_NAME` WHERE meta.id.substr(23,33) BETWEEN '181025_1711' AND '181025_1751'
真正的语法应该如何
您的问题是 SUBSTR() 函数。这应该有效:
SELECT meta().id
FROM TABLE_NAME
WHERE SUBSTR(meta().id, 23) BETWEEN '181025_1650' AND '181025_1730'
您可能需要调整起点 (23)。
我正在分享我的动态 select 查询,它从
获取参数
String query = "SELECT meta().id FROM " + bucketName + "
WHERE
SUBSTR(meta().id," + len + ") BETWEEN '" + dateStart + "'" + " AND " +
"'" + dateEnd + "'" + " AND meta().id LIKE '" + prefix + "%'";
public static Set<String> getDocument(String bucketName, Bucket bucket, String dateStart, String dateEnd, String key) {
Set<String> keys = new HashSet<>();
String prefix = KEY_PREFIX + key;
String len = String.valueOf(prefix.length());
String query = "SELECT meta().id FROM `" + bucketName + "` WHERE SUBSTR(meta().id," + len + ") BETWEEN '" + dateStart + "'" + " AND " + "'" + dateEnd + "'" + " AND meta().id LIKE '" + prefix + "%'";
N1qlQueryResult result = bucket.query(N1qlQuery.simple(query));
for (N1qlQueryRow n1qlQueryRow : result) {
keys.add(n1qlQueryRow.toString());
}
return keys;
}
我正在使用 couchbase DB,我写了 namedQuery buy 我遇到了语法错误。 我的日期格式:yyMMdd_HHmm
id :XX_YY_0038_2019-03-10@N181025_1636
SELECT meta().id FROM `TABLE_NAME` WHERE meta().id.SUBSTR(23,33) BETWEEN '181025_1650%' AND '181025_1730'
SELECT meta().id FROM `TABLE_NAME` WHERE substr(meta.id(),23,33) BETWEEN '181025_1711' AND '181025_1751'
SELECT meta().id FROM `TABLE_NAME` WHERE meta.id.substr(23,33) BETWEEN '181025_1711' AND '181025_1751'
真正的语法应该如何
您的问题是 SUBSTR() 函数。这应该有效:
SELECT meta().id
FROM TABLE_NAME
WHERE SUBSTR(meta().id, 23) BETWEEN '181025_1650' AND '181025_1730'
您可能需要调整起点 (23)。
我正在分享我的动态 select 查询,它从
获取参数String query = "SELECT meta().id FROM
" + bucketName + "
WHERE SUBSTR(meta().id," + len + ") BETWEEN '" + dateStart + "'" + " AND " + "'" + dateEnd + "'" + " AND meta().id LIKE '" + prefix + "%'";
public static Set<String> getDocument(String bucketName, Bucket bucket, String dateStart, String dateEnd, String key) {
Set<String> keys = new HashSet<>();
String prefix = KEY_PREFIX + key;
String len = String.valueOf(prefix.length());
String query = "SELECT meta().id FROM `" + bucketName + "` WHERE SUBSTR(meta().id," + len + ") BETWEEN '" + dateStart + "'" + " AND " + "'" + dateEnd + "'" + " AND meta().id LIKE '" + prefix + "%'";
N1qlQueryResult result = bucket.query(N1qlQuery.simple(query));
for (N1qlQueryRow n1qlQueryRow : result) {
keys.add(n1qlQueryRow.toString());
}
return keys;
}