Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Добавяне на милисекунди към DateTime в TSQL INSERT INTO

Мисля, че истинският проблем е, че RFQ_ID, Action_Time не трябва да бъде първичен ключ. Създайте сурогат първичен ключ и поставете неуникален индекс на RFQ_ID, Action_Time .

Актуализация :Ако наистина искате да се придържате към съществуващия си дизайн, можете да направите това, което поискахте, но да използвате 10 милисекунди вместо една милисекунда между всеки ред, за да компенсирате ниската точност на датата и часа. Можете да използвате номера на реда, за да определите колко милисекунди да добавите, така че да получите различно времево клеймо за всеки ред:

INSERT INTO QSW_RFQ_Log
(RFQ_ID, Action_Time, Quote_ID, Note)
SELECT
  RFQ_ID,
  DATEADD(millisecond, 10 * ROW_NUMBER() OVER (ORDER BY Quote_ID), GETDATE()) AS Action_Time,
  Quote_ID,
  'Added to RFQ on Initialization' AS Note
FROM QSW_Quote


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използването на SqlParameter в клаузата LIKE на SQL не работи

  2. JDBC SQLServerException:Този драйвер не е конфигуриран за интегрирано удостоверяване.

  3. Променете отместването на часовата зона на стойността на дата и отместване в SQL Server (T-SQL)

  4. Достъп до изходния параметър на съхранена процедура на SQL Server в C#

  5. SQL използва стойности, разделени със запетая, с клауза IN