Marklogic 使用构造字符串
我想知道为什么Marklogic 使用构造字符串,marklogic,marklogic-8,Marklogic,Marklogic 8,我想知道为什么werktwel中的这个字符串很好,但是werktniet中的字符串在我的查询中使用时却不好 当我记录它们时,我看到了同样的事情“2016-03-21*”并且当我记录时,该类型同时用于字符串和 // create data declareUpdate(); xdmp.documentInsert( "/example.json", {"meting": "783", "bericht": "553", "plant": "01", "timestamp
werktwel
中的这个字符串很好,但是werktniet
中的字符串在我的查询中使用时却不好
当我记录它们时,我看到了同样的事情<代码>“2016-03-21*”并且当我记录时,该类型同时用于字符串和
// create data
declareUpdate();
xdmp.documentInsert(
"/example.json",
{"meting": "783", "bericht": "553", "plant": "01", "timestamp": "2016-03-21T22:32:30.361756"},
xdmp.defaultPermissions(),
xdmp.defaultCollections(),
10)
// query
var nu = new Date();
var beteredatum = nu.getFullYear() + "-" + (Number(nu.getMonth())+1) + "-" + nu.getDate();
var werkniet = beteredatum + "*";
var werktwel = "2016-03-21*";
var a = cts.search(cts.jsonPropertyValueQuery("timestamp", werkniet, "wildcarded")).toArray();
xdmp.log(xdmp.type(werkniet));
a
我处理这些月的方式不太好。这样很好用。修复程序位于getMonth的切片中
// query
declareUpdate();
xdmp.documentInsert(
"/example.json",
{"meting": "783", "bericht": "553", "plant": "01", "timestamp": "2016-03-21T22:32:30.361756"},
xdmp.defaultPermissions(),
xdmp.defaultCollections(),
10)
// query
var nu = new Date();
var beteredatum = nu.getFullYear() + "-" + ("0" + (nu.getMonth() + 1)).slice(-2) + "-" + nu.getDate();
var werkniet = beteredatum + "*";
var werktwel = "2016-03-21*";
var a = cts.search(cts.jsonPropertyValueQuery("timestamp", werkniet, "wildcarded")).toArray();
xdmp.log(xdmp.type(werkniet));
a
我处理这些月的方式不太好。这样很好用。修复程序位于getMonth的切片中
// query
declareUpdate();
xdmp.documentInsert(
"/example.json",
{"meting": "783", "bericht": "553", "plant": "01", "timestamp": "2016-03-21T22:32:30.361756"},
xdmp.defaultPermissions(),
xdmp.defaultCollections(),
10)
// query
var nu = new Date();
var beteredatum = nu.getFullYear() + "-" + ("0" + (nu.getMonth() + 1)).slice(-2) + "-" + nu.getDate();
var werkniet = beteredatum + "*";
var werktwel = "2016-03-21*";
var a = cts.search(cts.jsonPropertyValueQuery("timestamp", werkniet, "wildcarded")).toArray();
xdmp.log(xdmp.type(werkniet));
a
考虑使用:
嗯 考虑使用:
嗯 你以前试过的时候,我怀疑月份是10月、11月或12月。(10,11,12). 请注意,您的修复程序还有一个“0”前缀,强制月份为2或更多位数,并转换为字符串。因此片(-2)将始终产生最后2位数字
然而,我建议使用内置的日期和日期时间函数,而不是尽可能地进行字符串操作,尤其是对于子组件。
从xs.date和xs.dateTime的转换遵循ISO8601规范,这些规范用数字固定,因此更容易分解然后组合。
例如“2016-02-21T11:22:33.012-03:00”(日期时间)或“2016-01-21”
将dateTime的日期(Beteredatam)部分作为字符串获取的示例可以简化为
var werkniet = fn.adjustDateToTimezone( fn.currentDate(), null ) + "*"
或
或
如果使用数字到字符串的转换,我建议使用定义良好的fn.formatNumber(或xdmp.formatNumber()),它提供0填充到固定宽度
e、 g以0填充的数字形式获取日期
fn.formatNumber(fn.dayFromDate( fn.currentDate() ),"00")
如果你坚持使用内置的fn。或者xdmp。日期函数它们的互操作性很好,没有+/-1,定义良好的字符串到数字或日期转换,并为所有预期日期的marklogic函数生成正确的格式。以前尝试过它时,我怀疑月份是10月、11月或12月。(10,11,12). 请注意,您的修复程序还有一个“0”前缀,强制月份为2或更多位数,并转换为字符串。因此片(-2)将始终产生最后2位数字
然而,我建议使用内置的日期和日期时间函数,而不是尽可能地进行字符串操作,尤其是对于子组件。
从xs.date和xs.dateTime的转换遵循ISO8601规范,这些规范用数字固定,因此更容易分解然后组合。
例如“2016-02-21T11:22:33.012-03:00”(日期时间)或“2016-01-21”
将dateTime的日期(Beteredatam)部分作为字符串获取的示例可以简化为
var werkniet = fn.adjustDateToTimezone( fn.currentDate(), null ) + "*"
或
或
如果使用数字到字符串的转换,我建议使用定义良好的fn.formatNumber(或xdmp.formatNumber()),它提供0填充到固定宽度
e、 g以0填充的数字形式获取日期
fn.formatNumber(fn.dayFromDate( fn.currentDate() ),"00")
如果你坚持使用内置的fn。或者xdmp。日期函数它们的互操作性很好,没有+/-1,定义良好的字符串到数字或日期转换,并为所有预期日期的marklogic函数生成正确的格式