点值 v,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。若已指定一个整数参数 N,则它被用作种子值,用来产生重复序列。
Eg1. SELECT RAND(20);
输出:0.15888261251047
Eg2. SELECT RAND();
输出:0.9233482386203
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句:
SELECT FLOOR(7 + (RAND() * 6));
6. ROUND(X),ROUND(X,D)
返回参数X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。若要接保留X值小数点左边的D 位,可将 D 设为负值。
Eg1. SELECT ROUND(-1.23);
输出:-1
Eg2. SELECT ROUND(2.56);
输出:3
7. SQRT(X)
返回非负数X的二次方根,如X为NULL时,返回NULL。
Eg1. SELECT SQRT(4);
输出:2
Eg2. SELECT SQRT(-4);
输出:NULL
四. 日期和时间函数
1. ADDDATE(date,INTERVAL expr type),ADDDATE(expr,days)
当被第二个参数的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同义词。相关函数SUBDATE()则是DATE_SUB()的同义词。
Eg1. SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
输出:'1998-02-02'
Eg2. SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
输出:'1998-02-02'
2. CURDATE()
将当前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。
Eg1. SELECT CURDATE();
输出:'2008-01-01'
Eg2. SELECT CURDATE() + 0;
输出:20080101
3. CURTIME()
将当前时间以'HH:MM:SS'或 HHMMSS 的格式返回, 具体格式根据函数用在字符串或是数字语境中而定。
Eg1. SELECT CURTIME();
输出:'15:15:26'
4. DATE(expr)
提取日期或时间日期表达式expr中的日期部分。
Eg1. SELECT DATE('2007-12-31 23:59:59');
输出:'2007-12-31'
5. DATEDIFF(expr, expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。
Eg1. SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
输出:1
Eg2. SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
输出:-31
6. DAYOFMONTH(date)
返回date 对应的该月日期,范围是从 1到31。
Eg1. SELECT DAYOFMONTH('2008-01-05');
输出:5
7. MONTH (time)
返回dat
e对应的月份,范围时从 1 到 12。
Eg1. SELECT MONTH('2007-01-05');
输出:1
8. HOUR(time)
返回time 对应的小时数。对于日时值的返回值范围是从 0 到 23 。
Eg1. SELECT HOUR('11