MySQL语句

1.备份表

insert into new_table 

select null(自增字段),uid,exam_id,start_time,submit_time,score(有自增字段时,null代替,如果不需要自增原复原样备份则可直接 * )

from old_table
where 条件

 

2.replace into 和 insert into区别

功能类似 但是replace into的特殊之处在于当使用replace into插入数据时,会先判断表中是否有重复元素 如果有重复元素,先将重复元素删除,然后插入新的元素 如果没有则直接插入 replace into语句所作用的表一定有主键

如:replace into examination_info
values (null,9003,'SQL','hard',90,'2021-01-01 00:00:00');

 

3.时间之差 datediff()函数 与 timestampdiff()函数的区别

.先从名字上来区分这两个函数的区别。
datediff() //看名字“直译”过来的意思是 《日期差异》 (胡乱翻译的不是很正确哦!)
timestampdiff() //这个也“值译”过来 《时间戳差异》
从名字就能大概区分他们的租作用,一个比较时间戳的,一个是比较日期的。
知道了他们的具体是干什么的,那就测试一下吧。

2.测试datediff()
DATEDIFF() 函数返回两个日期之间的天数。
date1 和 date2 参数是合法的日期或日期/时间表达式。 只有值的日期部分参与计算。

假设action表中有开始活动日期,结束活动日期。查看举行3天活动有哪些项目。

SELECT * from action where DATEDIFF(startDate,endDate) = 3;
测试一下MySQL:

SELECT DATEDIFF('2018-05-09 08:00:00','2018-05-09') AS DiffDate;
//结果 0 ; 表示 2018-05-09 与 2018-05-09之间没有日期差。这里是不比较时分秒的。下面验证带上时分秒有没有差别。
SELECT DATEDIFF('2018-05-09 00:00:00','2018-05-09 23:59:59') AS DiffDate;
//结果 0 ;
SELECT DATEDIFF('2018-05-08 23:59:59','2018-05-09 00:00:00') AS DiffDate;
//结果 -1;
SELECT DATEDIFF('2018-05-09 00:00:00','2018-05-08 23:59:59') AS DiffDate;
//结果 1;

 

 

3.测试timestampdiff()
测试一下MySQL

select timestampdiff(YEAR,"2018-01-01 15:15:16","2019-08-23 15:15:16") as timestamodiff;
//结果1。相差一年。
select timestampdiff(YEAR,"2019-08-22 15:15:19","2018-12-23 15:15:16") as timestamodiff;
//结果 -1,也是相差一年。
select timestampdiff(YEAR,"2019-08-22 15:15:19","2018-08-22 15:15:16") as timestamodiff;
//结果0,相差不到一年

select timestampdiff(MONTH,"2018-08-22 15:15:16","2018-07-23 15:15:16") as timestamodiff;
// 结果 0 相差不到一个月
select timestampdiff(MONTH,"2018-08-22 15:15:16","2018-07-01 15:15:16") as timestamodiff;
// 结果 -1 相差一个月
select timestampdiff(MONTH,"2018-08-22 15:15:19","2018-09-23 15:15:16") as timestamodiff;
// 结果 1 想差一个月

select timestampdiff(DAY,"2018-08-22 15:15:16","2018-08-23 15:15:16") as timestamodiff;
// 结果 1 想差一天
select timestampdiff(DAY,"2018-08-22 15:15:19","2018-08-23 15:15:16") as timestamodiff;
// 结果 0 想差不到一天
select timestampdiff(DAY,"2018-08-23 15:15:19","2018-08-22 15:15:16") as timestamodiff;
// 结果 -1 想差一天

原文链接:https://blog.csdn.net/liguangix/article/details/80243197

posted @ 2022-01-15 20:45  鱼骨头~  阅读(29)  评论(0)    收藏  举报