在 Postgresql if 语句中使用提取日期
Use Extract date in Postgresql if stament
我正在尝试在 postgresql 中执行类似于以下 MSSQL 代码的操作,但出现错误。
MSSQL代码
IF (YEAR(GETDATE()) ='2020')
SELECT 1
ELSE SELECT 2
Postgres 代码
CREATE PROCEDURE PROCNAME(
DATEVAR timestamp
)
AS $BODY$
DECLARE
BEGIN
if (Extract (YEAR FROM TIMESTAMP DATEVAR) ='2020') THEN
DO SOMETHING;
ELSE DO SOMETHING ELSE;
END IF ;
$BODY$;
错误:“DATEVAR”处或附近的语法错误
删除 timestamp
前缀,仅当您要引用 常量.
时才需要
数字应该与数字进行比较,而不是与字符串进行比较。
CREATE PROCEDURE PROCNAME(
DATEVAR timestamp
)
AS $BODY$
DECLARE
BEGIN
if Extract (YEAR FROM DATEVAR) = 2020 THEN
DO SOMETHING;
ELSE DO SOMETHING ELSE;
END IF;
$BODY$;
我正在尝试在 postgresql 中执行类似于以下 MSSQL 代码的操作,但出现错误。
MSSQL代码
IF (YEAR(GETDATE()) ='2020')
SELECT 1
ELSE SELECT 2
Postgres 代码
CREATE PROCEDURE PROCNAME(
DATEVAR timestamp
)
AS $BODY$
DECLARE
BEGIN
if (Extract (YEAR FROM TIMESTAMP DATEVAR) ='2020') THEN
DO SOMETHING;
ELSE DO SOMETHING ELSE;
END IF ;
$BODY$;
错误:“DATEVAR”处或附近的语法错误
删除 timestamp
前缀,仅当您要引用 常量.
数字应该与数字进行比较,而不是与字符串进行比较。
CREATE PROCEDURE PROCNAME(
DATEVAR timestamp
)
AS $BODY$
DECLARE
BEGIN
if Extract (YEAR FROM DATEVAR) = 2020 THEN
DO SOMETHING;
ELSE DO SOMETHING ELSE;
END IF;
$BODY$;