From 164ea9a6c87ddc5203ea2343d3c139f9a42b5fbe Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Thu, 3 Jul 2025 16:18:44 +0300 Subject: [PATCH] feat(db): add `uuid_extract_timestamp` function --- database/create-schema.sql | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/database/create-schema.sql b/database/create-schema.sql index eaa8c70..8df50e7 100644 --- a/database/create-schema.sql +++ b/database/create-schema.sql @@ -80,6 +80,20 @@ CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public; COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)'; +-- +-- Name: uuid_extract_timestamp(uuid); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.uuid_extract_timestamp(uuid_val uuid) RETURNS timestamp with time zone + LANGUAGE sql IMMUTABLE + AS $$ + SELECT to_timestamp( + ('x' || LEFT(REPLACE(uuid_val::TEXT, '-', ''), 12))::BIT(48)::BIGINT + / 1000.0 + ); +$$; + + -- -- Name: uuid_v7(timestamp with time zone); Type: FUNCTION; Schema: public; Owner: - --