当前情况:
timestamp with time zone
(时间戳)字段,用于跟踪观察发生的时间。 问题:
我有一种获取每个记录的时区的方法,因此我不需要。
我为此创建了一个测试表,其中包含时间戳字段ts_with
和时区tz
的varchar字段。以下查询返回我想要的内容,因此我感觉自己正在取得进步。
SELECT
name, test_tz.ts_with, test_tz.tz,
TIMEZONE(test_tz.tz, test_tz.ts_with) as timezone_with
FROM fire_info.test_tz
WHERE TIMEZONE(test_tz.tz, test_tz.ts_with) BETWEEN
'2018-08-07 00:00:00' AND '2018-08-07 23:59:59';
问题:
谢谢!
答案 0 :(得分:1)
您编写查询的方式,它不能使用ts_with
上的索引。
要使用索引,条件必须为ts_with <operator> <constant>
形式,并且无法以这种方式重写查询。
因此,您应该在timezone(test_tz.tz, test_tz.ts_with)
上创建第二个索引。