Estoy tratando de desarrollar un objeto modelo para contener una fila de servidor Sql, y entiendo perfectamente cómo hacer esto a excepción de la marca de tiempo T-Sql/SqlServer. La mesa se define como:¿Qué significa una marca de tiempo en T-Sql en C#?
CREATE TABLE activity (
activity_id int
, ip_address varchar(39)
, user_id varchar(255)
, message_text
, dt timestamp
)
Cuando resuelvo una fila de tabla a mi objeto, por un int o una cadena que se puede esperar para hacer algo como:
ActivityID = (int)dataReader["activity_id"];
IPAddress = (string)dataReader["ip_address"];
Pero, ¿qué puedo hacer al respecto la columna de la marca de tiempo? No hay ningún tipo de datos de "marca de tiempo" que pueda encontrar en ningún lado. Sé que el servidor Sql almacena la marca de tiempo como un binario de 8 bytes, pero ¿en qué es normalmente equivalente en .NET?
Editado para agregar: Un poco de información adicional ... esta es una fila que se devuelve de una tabla de DB2 en nuestro mainframe que viene a través de una vista de servidor Sql. "Rowversion" no es una opción, y DB2 está entregando la columna como una marca de tiempo. Si la marca de tiempo y la versión de la fila son idénticas, tal vez pueda tratarlo como si fuera uno, pero de lo contrario estoy atascado con la marca de tiempo.
Editado de nuevo para agregar: Este proyecto me va a volver loco. Será, al menos, un viaje corto. De todos modos, sí @JelC esta es una vista de servidor Sql en una base de datos DB2 en el mainframe. Finalmente pude rastrear uno de nuestros DBA, quien explicó con desdén que "por supuesto" un DB2 TIMESTAMP aparece como una vista de servidor Sql como una fecha y hora. Por su tono de voz, supongo que solo los noobs no saben esto. Es por eso que lo llamó "fecha y hora" en la vista real, ¡Duh! (Le puse un nombre diferente en mi ejemplo para no generar comentarios sobre las convenciones de nomenclatura; el diagrama del modelo de datos real dice que es un TIMESTAMP y lo nombra marca de tiempo). Entonces, en este caso, aparentemente uno debe convertirlo a DateTime. Creo que puedo comenzar a considerar convertirme en DBA para que yo también pueda volver locos a los programadores. Lo siento si confundí a alguno de los que respondieron a esta pregunta, no fue intencional, ya que en realidad estaba esperando que una marca de tiempo fuera, bueno, una marca de tiempo. Tonto de mí. Gracias especialmente a Microsoft por nombrar un tipo de datos de matriz de bytes una "marca de tiempo" cuando no tiene nada que ver con las fechas y horas. No tengo la menor idea de qué respuesta marcar como la Respuesta. Suspiro.
@ Michael que no es lo que se le preguntó OP. Utilizaría DateTime, BTW –
¿Qué pasa con el objeto 'DateTime', puede contener su marca de tiempo. – Rahul
vea también: http://stackoverflow.com/questions/425389/c-equivalent-of-sql-server-2005-datatypes –