gpt4 book ai didi

date - JCR SQL2 查询比较日期

转载 作者:行者123 更新时间:2023-12-01 05:09:08 26 4
gpt4 key购买 nike

我很难找到使用 SQL2 查询语言比较日期的方法。

我希望能够做这样的事情:

SELECT p.* FROM [nt:base] AS p WHERE EXTRACT(YEAR FROM p.[some_date]) = "2008"

这可能吗?这些约束之王的最佳技术是什么?

谢谢。

最佳答案

在查询中使用日期的最佳方式是使用 CAST 强制将日期/时间的字符串表示形式转换为 JCR 使用的 DATE 值。

不幸的是,在您的示例中,您正在寻找发生在特定年份内的日期。 JCR 无法将年份提取为整数,因此我所知道的唯一标准方法是检查实际日期是否出现在由年份的第一微秒和最后微秒定义的范围内:

SELECT p.* FROM [nt:base] AS p
WHERE p.[some_date] >= CAST('2008-01-01T00:00:00.000Z' AS DATE)
AND p.[some_date] <= CAST('2008-12-31T23:59:59.999Z' AS DATE)

您当然可以使用长表示法(纪元后的毫秒数)而不是字符串文字。

如果您有某种“年份”属性,这会变得容易得多:

SELECT p.* FROM [nt:base] AS p
WHERE p.[some_year] = 2008

您还可以使用字符串文字并强制转换为 LONG:

SELECT p.* FROM [nt:base] AS p
WHERE p.[some_year] = CAST('2008' AS LONG)

如果在属性定义中将 some_year 属性定义为 LONG,则某些实现可能会发现这一点并在规划期间自动转换。

关于date - JCR SQL2 查询比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117075/

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