Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Заполнить случайными значениями поле datetime  [new]
mrbobm
Member

Откуда:
Сообщений: 4
Здравствуйте!
Нужно заполнить таблицу случайными значениями.
Вызвало трудность заполнение поля типа datetime.

DECLARE @MyDatetime datetime,
SET @MyDatetime = '01/05/2013 00:01'
INSERT INTO mytable
VALUES (DATEADD (MINUTE, FLOOR(59*RAND()), @MyDatetime))

Так меняются только минуты.
Как сделать что бы часы, дни, месяцы и годы менялись последовательно т.е. минуты будут увеличиваться на случайное значение. Например было 45 минут, а стало 57 минут, потом 17 минут и когда стало 17 час увеличился на один и так дальше т.е. потом например стал 35 минут, а после 5 минут и час снова увеличился еще на 1.
Если такое реализовать не возможно, то подскажите хотя бы как вообще можно заполнить поле datetime случайными значениями.
13 июн 13, 02:09    [14426037]     Ответить | Цитировать Сообщить модератору
 Re: Заполнить случайными значениями поле datetime  [new]
wiuyriqweyrtiu
Guest
mrbobm,

;with
l0(id) as (select 1 union all select 1),
l1(id) as (select 1 from l0 t1, l0 t2),
l2(id) as (select 1 from l1 t1, l1 t2),
l3(id) as (select 1 from l2 t1, l2 t2),
l4(rn) as (select row_number() over(order by (select 1)) from l3)
select
	dateadd(year, rand(checksum(newid())) * 70,
	dateadd(month, rand(checksum(newid())) * 12,
	dateadd(day, rand(checksum(newid())) * 31,
	dateadd(hour, rand(checksum(newid())) * 24,
	dateadd(minute, rand(checksum(newid())) * 60, cast('19010101 00:00:00' as datetime)))))) as dt
from l4
where rn <= 100
13 июн 13, 02:24    [14426041]     Ответить | Цитировать Сообщить модератору
 Re: Заполнить случайными значениями поле datetime  [new]
Glory
Member

Откуда:
Сообщений: 104760
DECLARE @MyDatetime datetime
SET @MyDatetime = '20130501 00:00:00'
declare @x int, @y int
set @x =1
set @y = 86399

SELECT DATEADD(ss, cast(((@y - @x + 1) * RAND(checksum(newid())) + @x) as int), @Mydatetime)
from sysobjects
13 июн 13, 11:52    [14427282]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить