📜  在 psql 中获取日期 ISO(1)

📅  最后修改于: 2023-12-03 15:23:15.572000             🧑  作者: Mango

在 psql 中获取日期 ISO

在 psql 中获取当前日期可以使用内置函数now(),但是它返回的日期格式是YYYY-MM-DD HH:MI:SS.MS,如果需要获取 ISO 格式的日期可以使用to_char()函数。

使用 to_char() 函数获取 ISO 格式的日期
SELECT to_char(now()::date, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') AS iso_date;

解释:

  • now()::datenow() 返回的日期类型转换为日期格式。
  • to_char() 函数将日期类型转换为字符类型,并且可以指定输出格式,这里的格式为 ISO 格式的日期。
  • AS 用来指定输出列的别名。

输出结果:

       iso_date       
------------------------
 2021-08-05T14:00:23.105Z
(1 row)
可参数化 SQL 语句获取 ISO 格式的日期
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