When you’re doing dynamic structure in relational dbs (traditionally) options include storing a wide row with all the data types and you choose which column to use, or storing as lowest common denominator (string) and casting in and out at runtime. These days you can work around this stuff with json / schemaless models.
Airtable allow switching data types on a column (from memory). Maybe they store everything as string and then the column definition is for display and allowed operations.
Hubspot do this (poorly) so they’re forever giving you back things like dates as string of a number representing a date.
But why???