如何从维基数据中找出夏季出生的人?
How to find people who were born in summer from Wikidata?
我的目标是通过维基数据找到夏季出生的人。适用于 1983 年的是:
FILTER((?birth > "1983-06-20"^^xsd:dateTime) && (?birth < "1983-10-31"^^xsd:dateTime))
- 但我希望它过滤每年,即不仅仅是 1983 年。如何更改行?
- 如果我想添加一个年份跨度,比如 1983 年到 2000 年,我该怎么做?
要获得在 20 June 之后和 31 October 之前出生的人,您可以使用以下两种变体之一:
SELECT ?item ?birth WHERE {
?item wdt:P31 wd:Q5 .
?item wdt:P569 ?birth .
# variant 1: get from 20.06 to 30.06 and from 01.07 to 31.10
FILTER(
(month(?birth) = 6 && day(?birth) > 19) ||
(month(?birth) > 6 && month(?birth) < 11)
)
# variant 2: get from 01.06 to 31.10 and remove from 01.06 to 19.06
FILTER(month(?birth) > 5 && month(?birth) < 11)
FILTER(!(month(?birth) = 6 && day(?birth) < 20))
} LIMIT 1000
如果您还想添加 year-span (1983 - 2000),请在其他过滤器之前添加这两个过滤器:
FILTER (?birth >= "1983-01-01"^^xsd:dateTime)
FILTER (?birth <= "2000-12-31"^^xsd:dateTime)
我的目标是通过维基数据找到夏季出生的人。适用于 1983 年的是:
FILTER((?birth > "1983-06-20"^^xsd:dateTime) && (?birth < "1983-10-31"^^xsd:dateTime))
- 但我希望它过滤每年,即不仅仅是 1983 年。如何更改行?
- 如果我想添加一个年份跨度,比如 1983 年到 2000 年,我该怎么做?
要获得在 20 June 之后和 31 October 之前出生的人,您可以使用以下两种变体之一:
SELECT ?item ?birth WHERE {
?item wdt:P31 wd:Q5 .
?item wdt:P569 ?birth .
# variant 1: get from 20.06 to 30.06 and from 01.07 to 31.10
FILTER(
(month(?birth) = 6 && day(?birth) > 19) ||
(month(?birth) > 6 && month(?birth) < 11)
)
# variant 2: get from 01.06 to 31.10 and remove from 01.06 to 19.06
FILTER(month(?birth) > 5 && month(?birth) < 11)
FILTER(!(month(?birth) = 6 && day(?birth) < 20))
} LIMIT 1000
如果您还想添加 year-span (1983 - 2000),请在其他过滤器之前添加这两个过滤器:
FILTER (?birth >= "1983-01-01"^^xsd:dateTime)
FILTER (?birth <= "2000-12-31"^^xsd:dateTime)