Return 行基于各自时区的时间戳
Return rows based on timestamp respective to their time zone
我有一个 table,其中每一行代表一个用户。我还将用户的时区存储为文本,例如 'America/Denver'、'America/New_York' 等
是否可以编写一个查询,让 return 用户的当前时间在他们所在时区的下午 1 点到晚上 11 点之间?
SELECT CONVERT_TZ(FROM_UNIXTIME(1196440219),'GMT','America/Denver');
SELECT * 从 table 哪里
DATE_FORMAT(CONVERT_TZ(FROM_UNIXTIME(timestamp_column),'GMT','America/Denver'),'%H') 在 13 和 23 之间
鉴于此 table:
CREATE TABLE usr (
usr_id serial PRIMARY KEY
, usr text NOT NULL
, tz text -- time zone names
);
使用AT TIME ZONE
结构:
SELECT *, (now() AT TIME ZONE tz)::time AS local_time
FROM usr
WHERE (now() AT TIME ZONE tz)::time BETWEEN '13:00'::time AND '23:00'::time;
包括上限和下限下午 1 点和晚上 11 点。
AT TIME ZONE
的详细信息:
- Ignoring timezones altogether in Rails and PostgreSQL
我有一个 table,其中每一行代表一个用户。我还将用户的时区存储为文本,例如 'America/Denver'、'America/New_York' 等
是否可以编写一个查询,让 return 用户的当前时间在他们所在时区的下午 1 点到晚上 11 点之间?
SELECT CONVERT_TZ(FROM_UNIXTIME(1196440219),'GMT','America/Denver');
SELECT * 从 table 哪里 DATE_FORMAT(CONVERT_TZ(FROM_UNIXTIME(timestamp_column),'GMT','America/Denver'),'%H') 在 13 和 23 之间
鉴于此 table:
CREATE TABLE usr (
usr_id serial PRIMARY KEY
, usr text NOT NULL
, tz text -- time zone names
);
使用AT TIME ZONE
结构:
SELECT *, (now() AT TIME ZONE tz)::time AS local_time
FROM usr
WHERE (now() AT TIME ZONE tz)::time BETWEEN '13:00'::time AND '23:00'::time;
包括上限和下限下午 1 点和晚上 11 点。
AT TIME ZONE
的详细信息:
- Ignoring timezones altogether in Rails and PostgreSQL