其实很简单,通过Sin函数和DateDiff函数就可以实现了
DateDiff(HH,'2000-1-1',GetDate())返回一个值,这个值等于2000年1月1日到现在经历的小时数,显然,这个值每小时会+1
接着加上一个id,这是记录的编号,以增大随机性
最后计算Sin就可以了,得出来的结果是-1到+1之间的一个小数,每一条记录都会有自己的值,而这个值可以根据小时变化,这样就产生随机序列了
该SQL语句用于YT同人栏目首页的随机文章列表
本SQL语句仅在达梦数据库上测试通过,其他数据库没测试过。不过据猜测不能兼容其他数据库,因为似乎任何两个数据库系统的DateDiff函数的参数都不同…… 总之原理就是这样,针对不同的数据库写不同的就行了,当然通用性就……
F-22's Trace
greensea 的个人主页
sky-city
极夜奁
小樱之町