Способ right (на мой взгляд, конечно, поскольку «right» - субъективный термин) состоит в том, чтобы изменить схему так, чтобы эти значения были разделены.
Другими словами, 2009 и 1234 были бы в разных столбцах.
Практически всегда плохая идея с точки зрения скорости и масштабируемости - использовать функции для каждой строки в ваших операторах выбора. Это связано с тем, что СУБД должна выполнять вычисления для каждой отдельной строки, которую она извлекает, каждые раз, когда она ее извлекает.
Если вам необходимо сохранить их как один столбец, я использовал один прием в прошлом - использовать триггер вставки / обновления с двумя дополнительными столбцами для получения частей, поэтому у вас будет:
SomeFields | Data | PostSlash
-----------------+-----------+----------
blah, blah, blah | 2009/1234 | 1234
Да, я знаю, что это не идеальный 3NF, но вполне допустимо сломать это по соображениям производительности, если вы все сделаете правильно. Триггеры гарантируют, что столбцы всегда совпадают, и вы обнаружите, что ваши запросы выполняются намного быстрее при минимальных затратах на триггер и дублирование данных.
Но лучше делать это разделение один раз, когда строка создается или обновляется, а не каждый раз, когда вы ее читаете. Это потому, что базы данных обычно читаются гораздо чаще, чем пишутся. Расход триггера амортизируется по всем вариантам выбора.
Имейте в виду, что если ваша таблица небольшая или (по какой-то странной причине) пишется чаще, чем читается, вам лучше использовать функции для каждой строки.