sql >> Database teknologi >  >> RDS >> Sqlserver

Tilføjelse af millisekunder til en DateTime i TSQL INSERT INTO

Jeg tror, ​​det virkelige problem er, at RFQ_ID, Action_Time bør ikke være en primær nøgle. Opret en surrogat primær nøgle og sæt et ikke-unik indeks på RFQ_ID, Action_Time .

Opdater :Hvis du virkelig vil holde fast i dit eksisterende design, kan du gøre, hvad du bad om, men bruge 10 millisekunder i stedet for et millisekund mellem hver række for at kompensere for den lave præcision af datetime. Du kan bruge rækkenummeret til at bestemme, hvor mange millisekunder der skal tilføjes, så du får et forskelligt tidsstempel for hver række:

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. Jeg kan ikke starte Mysql 5.6 server på grund af TIMESTAMP med implicit DEFAULT værdi er forældet Fejl?

  2. Hvordan kalder man Oracle-funktion eller lagret procedure ved hjælp af fjederpersistensramme?

  3. Hvordan bruger man regulært udtryk i sql-serveren?

  4. Opdater hvis anderledes/ændret