Você pode adicionar uma nova coluna e atualizá-la manualmente como @gbn sugerido, mas agora você deve manter essa coluna constantemente atualizada com gatilhos de inserção / atualização ou algum outro mecanismo. Tomando emprestado as suposições do @ gbn nos nomes de tabelas / colunas, aqui estão algumas abordagens diferentes que não exigem manutenção constante.
Coluna Computada
ALTER TABLE dbo.MyTable ADD NewIntColumn AS
CONVERT(INT, DATEDIFF(SECOND, '19000101', MyDateTimeColumn));
--or for Unix epoch
ALTER TABLE dbo.MyTable ADD NewIntColumn AS
CONVERT(INT, DATEDIFF(SECOND, '19700101', MyDateTimeColumn));
Você também pode persistir e indexar esta coluna, trocando o desempenho da consulta pelo armazenamento, mas precisará fazer uma pequena alteração no cálculo (tentar persistir no exemplo acima gera um erro sobre o cálculo não determinístico):
ALTER TABLE dbo.MyTable ADD NewIntColumn AS
CONVERT(INT, DATEDIFF(SECOND, 0, MyDateTimeColumn)) PERSISTED;
-- or for Unix epoch
ALTER TABLE dbo.MyTable ADD NewIntColumn AS
CONVERT(INT, DATEDIFF(SECOND, 25567, MyDateTimeColumn)) PERSISTED;
Você deseja manter a coluna se estiver mais preocupado com o desempenho de leitura do que com o desempenho de gravação (ou armazenamento).
Visão
Um benefício de uma exibição sobre uma nova coluna é que você não precisa alterar o esquema da tabela base (ou se preocupar em mantê-lo atualizado). Você paga o custo da computação no momento da consulta, que é o mesmo que uma coluna computada não persistente.
CREATE VIEW dbo.vMyTable
AS
SELECT -- other columns,
MyDateTimeColumn,
NewIntColumn = DATEDIFF(...whichever calc above makes sense...)
FROM dbo.MyTable;
Tempo de execução
Como os cálculos acima não são muito complexos, inclua o cálculo na sua consulta. Espero que você esteja usando procedimentos armazenados para acesso a dados, para que não esteja repetindo isso com frequência.