Puede agregar una nueva columna y actualizarla manualmente como sugirió @gbn, pero ahora tiene que mantener constantemente esta columna actualizada con activadores de inserción / actualización o algún otro mecanismo. Tomando en cuenta las conjeturas de @ gbn sobre los nombres de tabla / columna, aquí hay un par de enfoques diferentes que no requieren mantenimiento constante.
Columna calculada
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));
También puede persistir e indexar esta columna, intercambiando el rendimiento de la consulta por el almacenamiento, pero deberá realizar un ligero cambio en el cálculo (intentar persistir en lo anterior generará un error acerca de que el cálculo no es determinista):
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;
Desearía mantener la columna si le preocupa más el rendimiento de lectura que el rendimiento de escritura (o el almacenamiento).
Ver
Una ventaja de una vista sobre una nueva columna es que no tiene que cambiar el esquema de la tabla base (o preocuparse por mantenerlo actualizado). Usted paga el costo del cálculo en el momento de la consulta, que es lo mismo que una columna calculada no persistente.
CREATE VIEW dbo.vMyTable
AS
SELECT -- other columns,
MyDateTimeColumn,
NewIntColumn = DATEDIFF(...whichever calc above makes sense...)
FROM dbo.MyTable;
Tiempo de ejecución
Como los cálculos anteriores no son demasiado complejos, solo incluya el cálculo en su consulta. Con suerte, está utilizando procedimientos almacenados para el acceso a datos, por lo que no está repitiendo esto con frecuencia.