Для метки времени Unix вы можете легко использовать INT(4) UNSIGNED
, максимальное значение которого равно 4294967295
. Вам достаточно хранить time()
значений на следующие 133 года. Если ваше приложение перестанет работать из-за этого, вы будете давно мертвы;)
Вы также можете попробовать использовать тип данных TIMESTAMP, который менее проблематичен, и когда вы хотите преобразовать его в метку времени Unix, вы можете использовать Функция UNIX_TIMESTAMP ().
ех.
SELECT UNIX_TIMESTAMP(col_timestamp) FROM tbl_name;
Цель свойства Tag
- использовать его для любых целей. Вы можете безопасно хранить там все, что захотите.
Обычно объявляется класс, который специально предназначен для хранения в свойстве Tag
(как вы это делали со своим CustClass
). Но если вам нужно только одно значение, тогда нет ничего плохого в том, чтобы хранить int
непосредственно в нем.
Где вы прочитали, что бокс / распаковка «небезопасны»? Это абсолютно не так. (Некоторые люди утверждают, что это неэффективно , но даже это не соответствует действительности.) Кроме того, ваш код даже не содержит пример упаковки. CustClass
является ссылочным типом. Только типы значений помечаются в рамке при назначении object
.
Из ссылок, также упомянутых здесь другими:
на https://msdn.microsoft.com/en-us/library/system.windows.forms.control.tag.aspx гласит:
Любой тип, производный от класса Object, может быть присвоен этому свойству. Если свойство Tag установлено в конструкторе Windows Forms, можно назначить только текст.
Широко используется свойство Tag для хранения данных, тесно связанных с элементом управления. Например, если у вас есть элемент управления, отображающий информацию о клиенте, вы можете сохранить DataSet, содержащий историю заказов клиента, в свойстве Tag этого элемента управления, чтобы к данным можно было быстро получить доступ.
и на https://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.tag.aspx читается:
... пример создает узел корневого дерева для назначения дочерних узлов дерева. Узел дочернего дерева для каждого объекта Customer в ArrayList добавляется к узлу корневого дерева, а также узел дочернего дерева для каждого объекта Order, назначенного объекту Customer. Объект Customer назначается свойству Tag, а узлы дерева, представляющие объекты Customer, отображаются оранжевым текстом. В этом примере требуется, чтобы у вас были определены объект Customer и Order, элемент управления TreeView на форме и ArrayList с именем customerArray, который содержит объекты Customer.