a. what do you mean by "not editable by the user"? which user?
b. combine all 4 into 1 timestamp column, and make it the first one in the table, and the system will automatically update it just as you want -- and when you want the pieces (time, day, month, year) just use the appropriate functions