Вы можете сделать функцию округления для округления до ближайшего часа и т. Д. И использовать совет SeM, обычно при запросе здесь вы будете показывать исходный код того, что вы уже пытались.
public static DateTime RoundDate(DateTime input)
{
var hour = input.Minutes > 30 ? input.Hour + 1 : input.Hour; //Rounding to get the nearest hour
return new DateTime(input.Year, input.Month, input.Day, hour, 0);
}
DROP TABLE user_statistics;
DROP VIEW user_statistics;
полный синтаксис:
И если Вы хотите полную функцию, я попробовал что-то вроде этого:
CREATE OR REPLACE FUNCTION delete_table_or_view(objectName varchar) RETURNS integer AS $$
DECLARE
isTable integer;
isView integer;
BEGIN
SELECT INTO isTable count(*) FROM pg_tables where tablename=objectName;
SELECT INTO isView count(*) FROM pg_views where viewname=objectName;
IF isTable = 1 THEN
execute 'DROP TABLE ' || objectName;
RETURN 1;
END IF;
IF isView = 1 THEN
execute 'DROP VIEW ' || objectName;
RETURN 2;
END IF;
RETURN 0;
END;
$$ LANGUAGE plpgsql;
Рассмотрите возможность использования DROP TABLE IF EXISTS и DROP VIEW IF EXISTS . Таким образом, в случае сбоя вы не получите сообщение об ошибке, а только уведомление.