Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: lmarza en 13 Marzo 2014, 10:56 am



Título: Tratar timestamp en un batch
Publicado por: lmarza en 13 Marzo 2014, 10:56 am
Hola, tengo en una base de datos sql server un valor tipo nvarchar que es en realidad un timestamp de una fecha de sincronizacion. El tema es que quiero cogerme ese dato para avisarme de problemas de sincronizacion, pero no se como tratarlo desde windows, habia pensado en un batch que me lo cambiara a un formato fecha estandar y luego ya trabajar con el, pero no se como hacerlo y no localizo nada, ni referente a sql server ni a batch.
gracias


Título: Re: Tratar timestamp en un batch
Publicado por: Eleкtro en 13 Marzo 2014, 11:40 am
tengo en una base de datos sql server un valor tipo nvarchar que es en realidad un timestamp de una fecha de sincronizacion.

He manejado muy poco SQL pero un TimeStamp no tiene nada que ver con una fecha (DateTime).

TimeStamp:
Citar
It's just a binary representation of a consecutive number - it's only good for making sure a row hasn't change since it's been read.

y RowVersion:
Citar
Is a data type that exposes automatically generated, unique binary numbers within a database.
RowVersion is generally used as a mechanism for version-stamping table rows.
The rowversion data type is just an incrementing number and does not preserve a date or a time. To record a date or time, use a datetime2 data type

Así que no puedes convertir un TimeStamp/RowVersion a una fecha, porque no es, ni tampoco contiene, una fecha.

Para otro tipo de conversiones (DateTime) puedes castear la expresión ~> Converts an expression of one data type to another in SQL Server 2012. (http://msdn.microsoft.com/en-us/library/ms187928.aspx)

Saludos.