Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dodawanie milisekund do DateTime w TSQL INSERT INTO

Myślę, że prawdziwym problemem jest to, że RFQ_ID, Action_Time nie powinien być kluczem podstawowym. Utwórz surrogat klucz podstawowy i umieść nieunikalny indeks w RFQ_ID, Action_Time .

Aktualizacja :Jeśli naprawdę chcesz trzymać się istniejącego projektu, możesz zrobić to, o co prosiłeś, ale używając 10 milisekund zamiast jednej milisekundy między każdym wierszem, aby zrekompensować niską precyzję daty i godziny. Możesz użyć numeru wiersza, aby określić, ile milisekund należy dodać, aby uzyskać inną sygnaturę czasową dla każdego wiersza:

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. BULK INSERT z niespójną liczbą kolumn

  2. Pobieranie obrazów z SQL Server 2008 i wyświetlanie ich w kontrolerze obrazu asp.net

  3. Zaktualizuj wiele wierszy za pomocą instrukcji select

  4. Dodaj emotikony / emotikony do tabeli SQL Server

  5. Jak usunąć określony znak z ciągu, tylko gdy jest to pierwszy lub ostatni znak w ciągu.