sql >> Database >  >> RDS >> Sqlserver

Milliseconden toevoegen aan een DateTime in TSQL INSERT INTO

Ik denk dat het echte probleem is dat RFQ_ID, Action_Time zou geen primaire sleutel moeten zijn. Maak een surrogaat primaire sleutel en plaats een niet-unieke index op RFQ_ID, Action_Time .

Bijwerken :Als je echt bij je bestaande ontwerp wilt blijven, kun je doen wat je vroeg, maar 10 milliseconden gebruiken in plaats van één milliseconde tussen elke rij, om de lage precisie van datetime te compenseren. U kunt het rijnummer gebruiken om te bepalen hoeveel milliseconden u moet toevoegen, zodat u voor elke rij een ander tijdstempel krijgt:

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. snelle willekeurige rijselectie in Postgres

  2. mysql n:m relatie:Vind rijen met verschillende specifieke relaties

  3. Mysql DateTime groep met 15 minuten

  4. Python aanroepen vanuit Oracle