又是把什么都扔给SQL的^^;建个个临时表,里面放1~60,然后用order by newid()随机取数字出来拼成时间
方法1DECLARE @s VARCHAR(2) SELECT @s=LEFT(NEWID(),2) DECLARE @c TABLE (id int,c char(1)) INSERT @c SELECT 7,'A' UNION SELECT 2,'B' UNION SELECT 3,'C' UNION SELECT 4,'D' UNION SELECT 5,'E' UNION SELECT 6,'F' UNION SELECT 1,1 UNION SELECT 2,2 UNION SELECT 3,3 UNION SELECT 4,4 UNION SELECT 5,5 UNION SELECT 6,6 UNION SELECT 7,7 UNION SELECT 0,0 UNION SELECT 1,8 UNION SELECT 2,9 --ID字段最大值为7的原因是,8*16=128分钟超出二小时了。 SELECT CONVERT(VARCHAR(10),DATEADD(mi,a.id*16+b.id,'2005-6-1 19:00:00'),8) FROM @c a INNER JOIN @c b ON a.c=LEFT(@s,1) and b.c=RIGHT(@s,1)方法2 SELECT TOP 120 IDENTITY(int) ID INTO #t FROM sysobjects,syscolumns SELECT TOP 1 CONVERT(VARCHAR(10),DATEADD(mi,ID,'2000-1-1 19:00:00'),8) FROM #t ORDER BY NEWID() DROP TABLE #t各有优缺点,这里就不说了。
SELECT @s=LEFT(NEWID(),2)
DECLARE @c TABLE (id int,c char(1))
INSERT @c
SELECT 7,'A'
UNION SELECT 2,'B'
UNION SELECT 3,'C'
UNION SELECT 4,'D'
UNION SELECT 5,'E'
UNION SELECT 6,'F'
UNION SELECT 1,1
UNION SELECT 2,2
UNION SELECT 3,3
UNION SELECT 4,4
UNION SELECT 5,5
UNION SELECT 6,6
UNION SELECT 7,7
UNION SELECT 0,0
UNION SELECT 1,8
UNION SELECT 2,9
--ID字段最大值为7的原因是,8*16=128分钟超出二小时了。
SELECT CONVERT(VARCHAR(10),DATEADD(mi,a.id*16+b.id,'2005-6-1 19:00:00'),8) FROM @c a
INNER JOIN @c b ON a.c=LEFT(@s,1) and b.c=RIGHT(@s,1)方法2
SELECT TOP 120 IDENTITY(int) ID INTO #t FROM sysobjects,syscolumns
SELECT TOP 1 CONVERT(VARCHAR(10),DATEADD(mi,ID,'2000-1-1 19:00:00'),8) FROM #t ORDER BY NEWID()
DROP TABLE #t各有优缺点,这里就不说了。