sql >> Databasteknik >  >> RDS >> Sqlserver

Lägga till millisekunder till en DateTime i TSQL INSERT INTO

Jag tror att det verkliga problemet är att RFQ_ID, Action_Time bör inte vara en primärnyckel. Skapa ett surrogat primärnyckel och sätt ett icke-unikt index på RFQ_ID, Action_Time .

Uppdatera :Om du verkligen vill hålla fast vid din befintliga design kan du göra vad du bad om men använda 10 millisekunder i stället för en millisekund mellan varje rad, för att kompensera för den låga precisionen i datumtid. Du kan använda radnumret för att bestämma hur många millisekunder som ska läggas till så att du får en annan tidsstämpel för varje rad:

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. Finns det något sätt att spola ut utdata från PL/SQL i Oracle?

  2. Infoga dataram i postgresql sqlalchemy med idx autoincrement

  3. PostgreSQL/JDBC och TIMESTAMP kontra TIMESTAMPTZ

  4. OracleDataSource vs. Oracle UCP PoolDataSource