Não.
DateTime
os valores devem ser armazenados como DateTime
, a menos que você tenha um bom motivo para armazená-los de outra forma (como para dar suporte a valores de data e hora fora dos valores min/max de DateTime
), sugiro deixá-lo em um DateTime
coluna. Você sempre pode manipular como você os retorna do banco de dados durante
Select
ou na camada de apresentação. Para retornar a hora unix de DateTime
, o MySql fornece um método integrado chamado UNIX_TIMESTAMP
. Para retornar o número de milissegundos, basta multiplicar por 1000, pois o timestamp unix é o número de segundos desde 1º de janeiro de 1970 (não incluindo os segundos bissextos). Se você quiser armazenar a hora do unix, terá que usar um tipo de dados int. Observe que, se você armazenar a hora unix em vez de armazenar o
DateTime
real valor em um DateTime
coluna de tipo de dados, você perderá a capacidade de usar facilmente todas as funções de data e hora incorporadas no banco de dados. Por exemplo, se você quiser descobrir quantas linhas pertencem a um mês específico, primeiro terá que traduzir os dados de int para datetime, e só então poderá calcular isso. Você também perderá a precisão (já que o tempo unix é impreciso mesmo na resolução de 1 segundo, porque ignora os segundos bissextos).
Então, para concluir - Quando o banco de dados oferece um tipo de dados que se encaixa nos dados, não armazene esses dados usando um tipo de dados diferente. use a
Date
tipo de dados se você deseja armazenar apenas datas, o DateTime
tipo de dados se você deseja armazenar valores de data e hora e o Time
tipo de dados se desejar armazenar uma hora específica do dia. P.S.
Ao lidar com valores de data e hora, especialmente se você tiver que lidar com clientes de vários locais, SEMPRE armazene apenas as datas UTC em seu banco de dados, a menos, é claro, que você queira enlouquecer.