SQL取整与时间差值返回
在昨天学习了Checksum(Newid()函数和RAND()求随机数的区别,示例中用到了Round和DATEDIFF()语法。
今天我们来了解一下这两个函数的作用
Round舍入
select round(100*rand(),0) AS 随机值
结果如下
在这里我引入了一个Round函数,那么Round是用来做什么呢?
我们注意到所得结果是整数,也就说明了Round的作用。
定义:ROUND 函数用于把数值字段舍入为指定的小数位数。
ROUND() 语法
SELECT ROUND(column_name,decimals) FROM table_name
ROUND() 实例
我们现有下面这个 “Products” 表:
现在,我们希望把名称和价格舍入为最接近的整数。
我们使用如下 SQL 语句:
SELECT ProductName, ROUND(UnitPrice,0) as UnitPrice FROM Products
结果集类似这样:
我们对比一下Round使用前后随机数的差别
select round(100*rand(),0) Union all select round(10*rand(),0) Union all select round(rand(),2) Union all select rand()
结果如下
到了这里我们基本了解了Round函数。也许有人问,那如果我并不想舍入,而只是想进行向上或向下取整呢?
昨天在学习随机函数时,示例中使用floor和对随机数上下取整,如下
FLOOR向上取整
select floor(rand()*80) AS 随机值
CEILING向下取整
select CEILING(rand()*100) as 随机值
结果即为想要的取整值。
DATEDIFF() 函数返回时间值差
定义
DATEDIFF() 函数返回两个日期之间的时间。
语法
DATEDIFF(datepart,startdate,enddate)
Startdate和 enddate 参数是合法的日期表达式。
datepart 参数可以是下列的值:
实例1
使用如下 SELECT 语句:
SELECT DATEDIFF(day,2008-12-29,2008-12-30) AS DiffDate
结果:
实例2
使用如下 SELECT 语句:
SELECT ABS(DATEDIFF(day,2008-12-30,2008-12-28)) AS DiffDate
结果:
