SQL 查询和过滤数据
SQL Query and filtering data
我正在使用时区数据库 (https://timezonedb.com/download),我正在努力处理 SQL 查询。
时区的有效性取决于数据库中的 time_start 字段。这对于获得正确的 time_start.
很重要
下面是数据
zone_id|zone_name |time_start
391 |America/Los_Angeles|2147397247
391 |America/Los_Angeles|1425808800
391 |America/Los_Angeles|2140678800
391 |America/Los_Angeles|9972000
392 |America/Metlakatla |2147397247
392 |America/Metlakatla |436352400
392 |America/Metlakatla |9972000
393 |America/Anchorage |2147397247
393 |America/Anchorage |2140682400
393 |America/Anchorage |2120122800
393 |America/Anchorage |1425812400
393 |America/Anchorage |9979200
下面的例子展示了如何使用时区名称America/Los_Angeles
.
查询时区信息
SELECT * FROM timezone
WHERE time_start < strftime('%s', 'now')
AND zone_name='America/Los_Angeles'
ORDER BY time_start DESC LIMIT 1;
这个查询returns
391|America/Los_Angeles|1425808800
我想用一个 SQL 查询对所有 zone_id 做同样的事情。
预期效果
391|America/Los_Angeles|1425808800
392|America/Metlakatla |436352400
393|America/Anchorage |1425812400
我猜你正在寻找这样的东西:
select tz.zone_id
, tz.zone_name
, max(tz.time_start)
from timezone tz
where tz.time_start < strftime('%s', 'now')
group by tz.zone_id
, tz.zone_name
order by tz.zone_id;
我正在使用时区数据库 (https://timezonedb.com/download),我正在努力处理 SQL 查询。
时区的有效性取决于数据库中的 time_start 字段。这对于获得正确的 time_start.
很重要下面是数据
zone_id|zone_name |time_start
391 |America/Los_Angeles|2147397247
391 |America/Los_Angeles|1425808800
391 |America/Los_Angeles|2140678800
391 |America/Los_Angeles|9972000
392 |America/Metlakatla |2147397247
392 |America/Metlakatla |436352400
392 |America/Metlakatla |9972000
393 |America/Anchorage |2147397247
393 |America/Anchorage |2140682400
393 |America/Anchorage |2120122800
393 |America/Anchorage |1425812400
393 |America/Anchorage |9979200
下面的例子展示了如何使用时区名称America/Los_Angeles
.
SELECT * FROM timezone
WHERE time_start < strftime('%s', 'now')
AND zone_name='America/Los_Angeles'
ORDER BY time_start DESC LIMIT 1;
这个查询returns
391|America/Los_Angeles|1425808800
我想用一个 SQL 查询对所有 zone_id 做同样的事情。
预期效果
391|America/Los_Angeles|1425808800
392|America/Metlakatla |436352400
393|America/Anchorage |1425812400
我猜你正在寻找这样的东西:
select tz.zone_id
, tz.zone_name
, max(tz.time_start)
from timezone tz
where tz.time_start < strftime('%s', 'now')
group by tz.zone_id
, tz.zone_name
order by tz.zone_id;