SQLServer 隨機生成指定範圍的日期

2022-01-16 09:51:34 字數 1208 閱讀 7490

乙個分頁的問題,dtcms3.0中,分頁是根據時間分頁的,如果當新增時間(add_time)都是同乙個數值時,不管點選第幾頁,顯示的資料都是同乙個的內容,於是就有了需要把同乙個時間改指定隨機日期的功能。

原貼指令碼轉至

第7樓的

feilniu同學.

sql指令碼如下: 

declare

@bdate

datetime, @edate

datetime

set@bdate='

20150701'--

下限set

@edate='

20150714 23:59:59'--

上限select id, random_datetime =

dateadd(second,abs(checksum(newid()))%

datediff(second,@bdate,@edate),@bdate)

from dbo.dt_article

where id between

1and

100 

生成的內容為:

32015-07-05 07:55:10.000

42015-07-08 06:15:06.000

92015-07-12 19:14:24.000

102015-07-11 20:13:05.000

122015-07-06 19:09:12.000

132015-07-09 10:28:59.000

142015-07-03 07:18:42.000

152015-07-06 09:46:29.000

此時的id是對應dt_article表中的id。

然後我們可以先把生成的資料寫到臨時表中,然後關聯更新!

我們修改指令碼如下:

select id, random_datetime =

dateadd(second,abs(checksum(newid()))%

datediff(second,@bdate,@edate),@bdate)

into #temp

from dbo.dt_article 

--更新日期

update dbo.dt_article  set add_time=b.random_datetime

from dbo.dt_article a ,#temp b

where a.id=b.id

sql server生成隨機id

sql server中生成隨機id的函式是newid 但是這樣生成出來的隨機id是36位帶 符號的。select newid 746516e0 95d6 4baf 8826 6c2f76e9c2ab 我們可以配合replace 函式替換掉 符號來生成32位的不帶 符號的隨機id。select rep...

mysql 隨機生成日期 隨機生成指定範圍的日期

在mssql中,有些商品會偽造一些評價,但是評價資訊可能會集中在一天或幾天內,現在需要把日期打散,平均分不到乙個日期段內,那麼這段 就有用了。無 declare evid int,pid int declare evaluate cursor for select evaluateid,produc...

C 生成指定範圍的隨機小數

網上查怎麼生成小數的隨機數,一直查不到我想要的。c 新標準,有乙個叫隨機數引擎的東西。包含於標頭檔案 include includeusing namespace std int main 上面的 中,主程式第一行就是 引擎 生成隨機序列,第二行就是 分布 如果把 real 替換成 int,裡寫成u...