Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 我今天要摘录';s日期和if今天';s日期是星期五,然后做(今天-3)其他(今天-11)_Postgresql - Fatal编程技术网

Postgresql 我今天要摘录';s日期和if今天';s日期是星期五,然后做(今天-3)其他(今天-11)

Postgresql 我今天要摘录';s日期和if今天';s日期是星期五,然后做(今天-3)其他(今天-11),postgresql,Postgresql,我想提取今天的日期,如果今天的日期是星期五,那么执行(今天-3)else(今天-11),并在下面的delete语句中使用此查询的结果 我的问题是: Delete from table where date<(above result) select now()::timestamp::date; this statement will give me the today's date select to_char(now()::timestamp::date, 'dy') this wi

我想提取今天的日期,如果今天的日期是星期五,那么执行(今天-3)else(今天-11),并在下面的delete语句中使用此查询的结果

我的问题是:

Delete from table where date<(above result)

select now()::timestamp::date; this statement will give me the today's date
select to_char(now()::timestamp::date, 'dy') this will give me week day in string
select extract(dow from now()::timestamp) this will give me week day in integer
Delete from table where date您可以这样尝试:

select case extract(dow from current_date) when 5 
         then (CURRENT_DATE - INTERVAL '3 day') 
         else
         CURRENT_DATE - INTERVAL '11 day' end

您可以这样尝试:

select case extract(dow from current_date) when 5 
         then (CURRENT_DATE - INTERVAL '3 day') 
         else
         CURRENT_DATE - INTERVAL '11 day' end

拉胡尔的回答是正确的,但如果你不想走自己的路

SELECT  CASE WHEN extract(dow from now()::timestamp) = 5 
                  THEN (select now()::timestamp::date) - 3 
                  ELSE (select now()::timestamp::date) - 11 
        END

希望它能有所帮助:)

拉胡尔的答案是正确的,但如果你不想走自己的路

SELECT  CASE WHEN extract(dow from now()::timestamp) = 5 
                  THEN (select now()::timestamp::date) - 3 
                  ELSE (select now()::timestamp::date) - 11 
        END
希望有帮助:)