select getdate(),DATEADD(millisecond,1,getdate())
дает мне тот же ответ .... Как добавить ровно 1 миллисекунду?Как я могу добавить ровно 1 миллисекунду?
Я не могу использовать поле datetime2
.
select getdate(),DATEADD(millisecond,1,getdate())
дает мне тот же ответ .... Как добавить ровно 1 миллисекунду?Как я могу добавить ровно 1 миллисекунду?
Я не могу использовать поле datetime2
.
Вам нужно хранить миллисекунды отдельно, если вам нужно много точности. В SQL Server 2005 нет собственного типа даты/времени, который позволит вам быть точнее, чем ~ 3 мс. Вот почему, например, последний раз, когда вы можете получить за один день, это 23: 59: 59.997, а не .998 или .999.
Я думаю, что вы не можете, потому что DateTime
s представлены как число с плавающей запятой внутри и 1 миллисекунда не могут быть представлены как float
.
Подробнее см. Ответы to this question.
Действительно, вы не можете, а не по той причине, которая дана точно. SQL Server хранит 'datetime' как 2 целых числа, один для datepart и один для времени. Время хранится как «тики», причем каждый тик равен «1/300» секунды, поэтому это просто связано с внутренним представлением, а не с чем-либо, связанным с 'float' –
Вы не можете. Точность datetime
составляет 3,33 миллисекунды.
Разрешение DATETIME
типа недостаточно для ваших нужд; за the documentation, это:
Округлые с шагом .000, .003 или .007 секунд
Возможный дубликат [Добавление miliseconds в datetime в tsql INSERT INTO] (http://stackoverflow.com/questions/2625178/adding-miliseconds-to-a-datetime-in-tsql-insert-into) – tvanfosson
См. также http://stackoverflow.com/questions/3380109/precision-of-sql-getdate – tvanfosson