2012-03-21 8 views
5
select getdate(),DATEADD(millisecond,1,getdate()) 

me da la misma respuesta .... ¿Cómo agregar exactamente 1 milisegundo?¿Cómo puedo agregar exactamente 1 milisegundo?

No puedo usar un campo datetime2.

+0

posible duplicado de [Agregar milisegundos a una fecha y hora en tsql INSERT INTO] (http://stackoverflow.com/questions/2625178/adding-miliseconds-to-a-datetime-in-tsql-insert-into) – tvanfosson

+0

See también http://stackoverflow.com/questions/3380109/precision-of-sql-getdate – tvanfosson

Respuesta

9

que necesitará para almacenar milisegundos por separado si necesita que gran precisión. En SQL Server 2005 no hay un tipo de fecha/hora nativo que le permita ser más preciso que ~ 3 ms. Esta es la razón por la cual, por ejemplo, la última vez que puede tener en un día es 23: 59: 59.997, no .998 o .999.

0

Creo que no se puede, porque DateTime s se representan como números de punto flotante internamente y 1 milisegundo no se puede representar como float.

Para obtener más información, consulte las respuestas to this question.

+0

De hecho no se puede, pero no por la razón dada exactamente. SQL Server almacena 'datetime' como 2 enteros, uno para datepart y otro para time. El tiempo se almacena como 'ticks' con cada tic que es' 1/300' de segundo, por lo que solo tiene que ver con la representación interna en lugar de con 'flotar' –

6

No puede. La precisión de datetime es de 3,33 milisegundos.

Date and Time

1

La resolución del tipo DATETIME es insuficiente para sus necesidades; por the documentation, es:

redondeado a incrementos de .000, .003, .007 segundos o

Cuestiones relacionadas