Kev*_*son 4 sql postgresql date-arithmetic
我有一个表,其中工作日存储为整数(0 到 6)。
我需要什么函数来创建与这些日期数字相关的日期名称?
例如:0 -> 周日,1->周一等
喜欢:
SELECT magic(my_day_number) FROM my_table;
Mon
Run Code Online (Sandbox Code Playgroud)
小智 5
这就是我要使用的:
select ('{Sun,Mon,Tue,Wed,Thu,Fri,Sat}'::text[])[extract(dow from now()) + 1] as day_of_week;
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢函数:
CREATE OR REPLACE FUNCTION dow_name(p_index integer)
RETURNS text LANGUAGE sql STRICT IMMUTABLE PARALLEL SAFE AS
$$
SELECT (array['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[p_index + 1];
$$;
Run Code Online (Sandbox Code Playgroud)
与 using block 相比,两个选项 with'{...}'::text[]和 的工作速度(在 Postgres 12 上)都快 8% 。array[...]CASE
| 归档时间: |
|
| 查看次数: |
7267 次 |
| 最近记录: |