定义和用法
datediff()函数返回两个日期之间的天数;
语法:datediff(date1,date2)
date1和date2参数是合法的日期或日期时间表达式,它是前面的date1-date2,一般前面是date日期靠后的;
注释:只有值的日期部分参与计算
实例:
使用如下select语句:
select datediff('2008-12-30','2008-12-29') as diffdate
结果:diffdate
1
select datediff('2008-12-29','2008-12-30) as diffdate
结果
-1
类似datediff函数的还有timediff;
使用datediff函数,可以通过where条件筛选出最近某段时间内的数据。
插入重复主key数据时忽略插入
1 :insert ignore into
当插入数据时,如果有重复数据,将不会报错,只是警告形式返回。
例: insert ignore into books (name) values ('Mysql manual')
2: on duplicate key update
当primary 或者 unique重复时,则执行update语句,如update后为无用语句,id=id,则
同1功能相同,但错误不会被忽略掉,例如,为了实现name重复的数据插入不报错,可使用
insert into books(name) values ('Mysql manual') on duplicate key update id = id
3: insert .. select .. where not exist
根据select 的条件判断是否插入,可以不光通过primary和unique来判断,也可以通过其它条件
insert into books (name) select 'Mysql manual' from dual where not exit (select id from books where id =1)
4:replace into
如果存在primary和unique相同的记录,则先删除,再插入新纪录
Replace into books select 1,'Mysql manual' from books