Ваша строка является строкой Unicode.Он закодирован в кодировке utf-8, которая может использовать несколько байтов для одного символа.Итак, ваша строка соответствует следующей последовательности байтов:
c5 94 c3 8e c4 b9 c3 8d c5 82 c3 97 c4 bd c4 b9 c5 82 c3 8e 30 37 30 39 30 35 2d 31 32 31 37 31 33
Ваш столбец объявлен как VARBINARY (24), поэтому ваши данные не помещаются в столбец и обрезаются.Хранится только 24 байта:
c5 94 c3 8e c4 b9 c3 8d c5 82 c3 97 c4 bd c4 b9 c5 82 c3 8e 30 37 30 39
Это то, что вы видите.
Чтобы решить эту проблему, установите тип столбца VARCHAR (24), чтобы ограничение применялось к количеству символов, а не байтов.Установите кодировку для вашей таблицы на «utf-8».Если вы можете установить кодировку соединения, пусть оно также будет «utf-8» (похоже, это уже «utf-8»).Тогда все будет хорошо.
Если вы не хотите, чтобы ваш столбец VARCHAR, вы можете просто удвоить емкость вашего VARBINARY.Пусть это будет VARBINARY (48).Но я не рекомендую это.Хотя большинство 24-символьных строк в кодировке utf-8 будут вмещаться в 48 байтов, некоторые из них не будут (поскольку некоторые экзотические символы могут занимать более 2 байтов. Теоретически длина одного символа в utf-8 может составлять до6 байтов! Очень редко, хотя ...).Если вы сделаете столбец VARCHAR, это будет лучшим вариантом, потому что на самом деле вы помещаете туда текст, а не двоичные данные.