📅  最后修改于: 2023-12-03 15:23:15.572000             🧑  作者: Mango
在 psql 中获取当前日期可以使用内置函数now()
,但是它返回的日期格式是YYYY-MM-DD HH:MI:SS.MS
,如果需要获取 ISO 格式的日期可以使用to_char()
函数。
SELECT to_char(now()::date, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') AS iso_date;
解释:
now()::date
将 now()
返回的日期类型转换为日期格式。to_char()
函数将日期类型转换为字符类型,并且可以指定输出格式,这里的格式为 ISO 格式的日期。AS
用来指定输出列的别名。输出结果:
iso_date
------------------------
2021-08-05T14:00:23.105Z
(1 row)
PREPARE iso_date(text) AS
SELECT to_char(now()::date, $1) AS iso_date;
使用PREPARE
命令创建可参数化的 SQL 语句,将输出格式作为参数。
EXECUTE iso_date('YYYY-MM-DD"T"HH24:MI:SS.MS"Z"');
使用EXECUTE
命令执行可参数化的 SQL 语句,传入输出格式参数。
输出结果:
iso_date
------------------------
2021-08-05T14:00:23.105Z
(1 row)
DO $$
DECLARE
iso_date TEXT;
BEGIN
SELECT to_char(now()::date, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') INTO iso_date;
RAISE NOTICE 'ISO date: %', iso_date;
END;
$$;
上面的代码使用了一个匿名代码块,在其中声明了一个变量iso_date
,然后将 ISO 格式的日期赋给这个变量。最后,使用RAISE NOTICE
命令将日期打印到标准输出。
输出结果:
NOTICE: ISO date: 2021-08-05T14:00:23.105Z
DO