Fix ‘Conversion Error: extract specifier “monthname” not recognized’ in DuckDB

If you’re getting an error that reads “Conversion Error: extract specifier “monthname” not recognized” in DuckDB, it appears that you’re using a function like extract() or date_part() to try to get the month name from a date.

These functions don’t accept a monthname specifier, and so that’s why the error occurs. Fortunately, DuckDB provides a monthname() function, and so you could try that instead. Also, the strftime() function has a format specifier for the month name, and so that’s another option.

So to fix this issue, try the monthname() or strftime() function instead.

Continue reading

Checking if a Value is Finite in DuckDB with ISFINITE()

In DuckDB, ISFINITE() is a function for checking whether values are finite. DuckDB supports infinite values, and so we can use this function to check whether a value is infinite or not. This can be useful when working with floating-point data that might contain special values like NaN (Not a Number) or infinity. We can also use it on date and timestamp values.

Continue reading

How ARG_MAX_NULL() Works in DuckDB

In DuckDB, the arg_max_null() function works in a similar way to the arg_max() function, in that it finds the row with the maximum value in one column and returns the corresponding value from another column at that row.

But where it differs from arg_max() is in the way it deals with NULL values. Also, arg_max_null() only accepts two arguments, whereas arg_max() accepts an optional third argument. Additionally, there aren’t any aliases for arg_max_null() at the time of writing (arg_max() has a couple of aliases).

In this article we’ll look at how arg_max_null() works, and we’ll compare it with arg_max() to see how each function handles NULL values.

Continue reading