0
的Postgres 9.6時間戳
我有利用BETWEEN操作者選擇其中一個被指定的日期範圍內創建的記錄的功能。這是我的結構和功能
表
CREATE TABLE test.dated_records (
dated_record_id int4 NOT NULL DEFAULT nextval('test.dated_record_dated_record_id_seq'::regclass),
create_date timestamptz NOT NULL DEFAULT now(),
update_date timestamptz NOT NULL DEFAULT now(),
CONSTRAINT dated_record_pkey PRIMARY KEY (dated_record_id),
)
WITH (
OIDS=FALSE
) ;
函數的例子
CREATE OR REPLACE FUNCTION test.list_date_records(_start_date timestamp with time zone, _end_date timestamp with time zone,)
RETURNS TABLE(dated_record_id integer, create_date timestamptz,update_date timestamptz)
LANGUAGE plpgsql
AS $function$
BEGIN
return QUERY EXECUTE
$q$
SELECT
dr.dated_record_id,
dr.create_date,
dr.update_date
FROM test.dated_records dr
WHERE dr.create_date BETWEEN $1 AND $2
ORDER BY dr.create_date DESC
$q$
using _start_date, _end_date;
return;
END
$function$
我有一個紀錄的'2017-07-06 21:55:40.550468'
一個CREATE_DATE和日誌記錄我的參數
LOG: execute <unnamed>:
SELECT * FROM test.list_date_records($1, $2);
DETAIL: parameters: $1 = '2017-06-08 00:00:00', $2 = '2017-07-06 23:59:59'
但我沒有得到任何回報。我試着改變一切,以簡單的TIMESTAMP和鑄造create_date到DATE,但似乎沒有任何工作。
我確定它與我的時區有關(我是美國東部時間 - 紐約),但我無法弄清楚它對我的生活是什麼。
我希望有人能指出我做錯了什麼。
在此先感謝。
請給予好評,並標記爲答案這個答案可以幫助你。如果你不明白,我們可以在評論部分討論更多。謝謝 :) –