CREATE OR REPLACE FUNCTION to_date(date_string VARCHAR, format_string VARCHAR) RETURNS DATE BEGIN DECLARE monetdb_format VARCHAR; -- Translate PostgreSQL format tokens to MonetDB strptime tokens SET monetdb_format = REPLACE(format_string, 'YYYY', '%Y'); SET monetdb_format = REPLACE(monetdb_format, 'MM', '%m'); SET monetdb_format = REPLACE(monetdb_format, 'DD', '%d'); SET monetdb_format = REPLACE(monetdb_format, 'HH', '%H'); SET monetdb_format = REPLACE(monetdb_format, 'MI', '%M'); SET monetdb_format = REPLACE(monetdb_format, 'SS', '%S'); -- Use MonetDB's str_to_date and cast the result to DATE RETURN CAST(str_to_date(date_string, monetdb_format) AS DATE); END;