SQL语句使用时间和日期的函数】的更多相关文章

getdate():获取系统当前时间dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate())datediff(datepart,startdate,enddate):计算两个时间的差值,比如:datediff(yy,getdate(),'2008-08-08')dataname(datepart,date):获取时间不同部分的值,返回值为字符串datepart(datepart,date):…
存储过程往拼接的sql语句中传递日期值 declare @start datetime declare @end datetime set @start='2014-3-1' set @end='2014-3-31' ) set @sql=' select * from search_record where (Name!='' or Phone!='') and (thedate between @st and @en )' exec sp_executesql @sql,N'@st date…
COALESCE()函数 主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:  COALESCE ( expression,value1,value2……,valuen)  COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定. COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式. 如果expression不为空值则返回expression:否则判断value1是否是空值,…
1. 本月的第一天SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0) 2. 本月的最后一天SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0)) 3.上个月的第一天select dateadd(m,-1,  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0)) 4. 上个月的最后一天 SELECT  dateadd(ms,-3,DATE…
聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计算列的最小值   首先,创建数据表如下:     执行列.行计数(count): 标准格式 SELECT COUNT(<计数规范>) FROM <表名> 其中,计数规范包括: - * :计数所有选择的行,包括NULL值: - ALL 列名:计数指定列的所有非空值行,如果不写,默认为AL…
在SQL Server 里的日期数据,我们经常可以用 字段<='2008-5-20'这样的表达式,但在oracle却不可以,因为数据类型不一样 字段是date型,'2008-5-20'是字符型,需要用to_char 或者to_number转换成相同的类型才能进行比较.刚开始这让我觉得不习惯,觉得不好,不过时间长了,觉得也有不少便利之处,尤其是配合trunc啊,to_char之类的,下面简单写一下常用的一些对日期的操作 获取当前的系统时间:select sysdate from dual     …
DML(数据操纵语言) INSERT .UPDATE. DELETE 插入操作:INSERT: 语法: INSERT INTO 表名(列名1,列名2 ...)VALUES(列值1,列值2...); 注意:列名与列值的类型.个数.顺序要一一对应. 可以把列名当做java中的形参,把列值当做实参. 值不要超出列定义的长度. 如果插入空值,请使用null 插入的日期和字符一样,都使用引号括起来. 修改操作 UPDATE: 语法:UPDATE 表名 SET 列名1=列值1,列名2=列值2 .......…
字符串函数   1.大小写转换    --upper 转化成大写    --lower  转换成小写    select upper('AsaR')   2.长度    --len 字数    --datalength 字节数   3.去除前后空格    --rtrim 去除右边空格    --ltrim  去除左边空格   4.字符串截取    --Left('串',15)  从左侧开始 截取15个字节    --right('串',15) 从右侧开始 截取15个字节    --SubStri…
我们先创建一个表: CREATE TABLE `student` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(10) NULL COMMENT '姓名' , `age` TINYINT NULL COMMENT '年龄' , `registTime` DATETIME NULL COMMENT '入学时间' , PRIMARY KEY (`id`) ); 插入测试数据: INSERT INTO `student` (`id`, `nam…
lag() over() ) OVER(ORDER BY C.column) FROM Table C; 第一条记录已经无法再取前一条记录,所以LAG()函数返回空. SQL为意思如下. LAG(C.CNAME, ) 表示取前一条记录的CNAME的值. OVER(ORDER BY C.CNO)表示按CNO来排序,然后决定记录之间的前后关系 lag() over(partition by column order by column) ) OVER(PARTITION BY C.TNO ORDER…