gpt4 book ai didi

python - XQuery:将日期时间与毫秒进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 10:28:43 25 4
gpt4 key购买 nike

我在 Python 中有一个验证模块,它对 XML 文档执行 XQuery 以检查是否有任何 <Start>时代来临<End>次,并返回它们的计数。查询如下:

    for $d at $count in ./ty:Detections/Detection
where $d/Start > $d/End
return $count

现在这适用于所有情况,除非将毫秒附加到结束时间但不是开始时间,例如:

        <Start>2009-02-23T02:53:14Z</Start>
<End>2009-02-23T02:53:14.226Z</End>

这总是返回 True,即使显然 14 小于 14.22。如果我将一个小数位添加到 <Start>时间在这里,它起作用了——但是有没有更好的解决方案?

最佳答案

据推测,StartEnd 元素没有有效的架构绑定(bind)。在那种情况下,查询正在执行 xs:untypedAtomic 比较,它有效地比较字符串值,其中 "Z" 比较大于 "."

您需要的是 xs:dateTime 比较,因此您应该在将元素值转换为该类型后比较它们。因此查询应该如下所示:

    for $d at $count in ./ty:Detections/Detection
where xs:dateTime($d/Start) > xs:dateTime($d/End)
return $count

关于python - XQuery:将日期时间与毫秒进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28201954/

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