Skip to content

Instantly share code, notes, and snippets.

@nikolavojicic
Last active September 19, 2023 20:34
Show Gist options
  • Save nikolavojicic/6ece6cd96de34473617260318c6ba77d to your computer and use it in GitHub Desktop.
Save nikolavojicic/6ece6cd96de34473617260318c6ba77d to your computer and use it in GitHub Desktop.
CREATE OR REPLACE FUNCTION fn_days_in_month (DATE) RETURNS SMALLINT
AS 'SELECT EXTRACT (DAYS FROM DATE_TRUNC (''month'', $1) + INTERVAL ''1 month - 1 day'')::SMALLINT;'
LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OR REPLACE FUNCTION fn_days_in_quarter (DATE) RETURNS SMALLINT
AS 'SELECT ($1 - DATE_TRUNC (''quarter'', $1)::DATE + 1)::SMALLINT;'
LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OR REPLACE FUNCTION fn_days_in_year (DATE) RETURNS SMALLINT
AS 'SELECT EXTRACT (DOY FROM DATE_TRUNC (''year'', $1) + INTERVAL ''1 year - 1 day'')::SMALLINT;'
LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION fn_word_count (VARCHAR) RETURNS INTEGER
AS 'SELECT COUNT (DISTINCT word)
FROM (SELECT regexp_split_to_table ($1, ''\s+'') AS word)
AS _;'
LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment