Как лучше сохранять дату и время?
Есть встроенный тип времени и даты и даже не один. Используйте его, а не костыли. 

INT	-231 (-2,147,483,648) to 231-1 (2,147,483,647)	4 Bytes
DATETIME    8 bytes
7 * 4 = 28 это одна ваша запись оверхед в 20 байтов. 
Плюс по вашим данным нельзя искать используя встроенные функции и операторы, в общем реальная дичь. 

Кстати что натолкнуло на такую конструкцию?
Вариант с таблицей дат, вы вероятно подсмотрели где-то, где в одной таблице хранятся агрегаты разной гранулярности. Только в этом случае такие манипуляции имеют смысл. Но хорошим я бы такое решение все равно не назвал бы. Сделать несколько таблиц агрегатов выгоднее, чем все свалить в кучу и потом терять в чтении и записи, на манипуляции с дополнительной таблицей. Или еще лучше, запихнуть все в колоночное хранилище, которое само будет управлять агрегатами.
Но вы ведь вообще не агрегаты собираете, а просто данные, так что все это ни к чему.