您並未明確指出您正在使用的SQL Server版本,因此我將假設SQL Server 2005或更高版本。我相信WAITFOR DELAY命令將是一個不錯的選項,可以爲datetime列的每行添加1秒。
見這個例子:
-- Create temp table
CREATE TABLE #Client
(
RecordID int identity(1,1),
[Name] nvarchar(100) not null,
PurchaseDate datetime null
)
-- Fill in temp table with example values
INSERT INTO #Client
VALUES ('Jhon', NULL)
INSERT INTO #Client
VALUES ('Martha', NULL)
INSERT INTO #Client
VALUES ('Jimmy', NULL)
-- Create local variables
DECLARE @currentRecordId int,
@currentName nvarchar(100)
-- Create cursor
DECLARE ClientsCursor CURSOR FOR
SELECT RecordID,
[Name]
FROM #Client
OPEN ClientsCursor
FETCH FROM ClientsCursor INTO @currentRecordId, @currentName
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE #Client
SET PurchaseDate = DATEADD(ss,1,GETDATE())
WHERE RecordID = @currentRecordId
AND [Name] = @currentName
WAITFOR DELAY '00:00:01.000'
FETCH NEXT FROM ClientsCursor INTO @currentRecordId, @currentName
END
CLOSE ClientsCursor;
DEALLOCATE ClientsCursor;
SELECT *
FROM #Client
而這裏的結果:
1 Jhon 2015-03-31 15:20:04.477
2 Martha 2015-03-31 15:20:05.473
3 Jimmy 2015-03-31 15:20:06.470
希望你找到這個答案有幫助
來源
2015-03-31 18:29:30
G21
您可以編寫一個遞增GETDATE值 – 2015-03-31 18:03:19
@JimSosa自定義函數雅這就是我想的......我在SSIS中這樣做,所以這很容易。只是想看看是否有一個很酷的小竅門,我可以在查詢中做到這一點 – 40Alpha 2015-03-31 18:04:58
你試過了DateAdd(ss,id,getDate())。假設你的ID都是1的增量 – 2015-03-31 18:07:22