SQL Server - 一天中选择每秒

Nic*_*aro 3 sql t-sql sql-server datetime sql-server-2008-r2

使用:SQL Server 2008 R2

我想编写一个查询,它将以日期时间格式在一天中每秒选择(按单个列排序).

防爆.

2012-02-02 00:00:00
2012-02-02 00:00:01
2012-02-02 00:00:02
2012-02-02 00:00:03
2012-02-02 00:00:04
...
2012-02-02 23:59:58
2012-02-02 23:59:59
Run Code Online (Sandbox Code Playgroud)

是的,认真的.

如果需要,我可以创建一个数字表,如果我可以将整数值转换为datetime,这可能会有所帮助.

提前致谢.

Mic*_*son 6

这假设一个数字表的值最多为86,400 ...一天中的秒数.

为了说明,我在这里创建了一个数字表...但你应该提前做到这一点.

SET NOCOUNT ON

DECLARE @YourDate DATETIME
SET @YourDate = '2/2/2012'

DECLARE @Numbers TABLE (Number INT)
DECLARE @Index INT

SET @Index = 0
WHILE (@Index < 86400)
BEGIN
    INSERT INTO @Numbers VALUES (@Index)
    SET @Index = @Index + 1
END

SELECT DATEADD(SECOND, n.Number, @YourDate)
FROM @Numbers n
WHERE n.Number < 86400
Run Code Online (Sandbox Code Playgroud)