SQL Server tiene nada que ver con una fecha y hora!
Es solo una representación binaria de un número consecutivo: solo es bueno para asegurarse de que una fila no haya cambiado desde que se leyó.
En las versiones más nuevas de SQL Server, se llama RowVersion
- ya que eso es realmente lo que es. Ver el MSDN docs on ROWVERSION:
es un tipo de datos que expone generados automáticamente, números binarios únicos dentro de una base de datos. rowversion generalmente se usa como un mecanismo para las filas de la tabla de estampado de versiones. El tipo de datos rowversion es solo un número creciente y no conserva una fecha o una hora. Para registrar una fecha u hora, utilice un tipo de datos datetime2 .
Así que no puede convertir un servidor SQL Server TIMESTAMP
a una fecha/hora - no es sólo una fecha/hora.
Pero si está diciendo timestamp pero realmente quiere decir una columna DATETIME
, puede usar cualquiera de esos formatos de fecha válidos descritos en el tema CAST and CONVERT en la ayuda de MSDN. Esos están definidos y soportados "fuera de la caja" por SQL Server. Cualquier otra cosa no es compatible, p. tienes que hacer un montón de fundición manual y concatenación (no recomendado).
El formato que está buscando se ve un poco como el ODBC canónica (estilo = 121):
DECLARE @today DATETIME = SYSDATETIME()
SELECT CONVERT(VARCHAR(50), @today, 121)
da:
2011-11-14 10:29:00.470
SQL Server 2012 will finally have a FORMAT
function hacer formato personalizado ... ...
Probablemente mi mayor problema con SQL Server. ¿Por qué llamarlo marca de tiempo si no puedo decir la hora con él? – BelgoCanadian
@BelgoCanadian: pregunta a Sybase: esa es una característica que ha estado en Sybase/SQL Server para siempre ... –