mysql常用数据处理操作

自增长字段id重新排序

ALTER TABLE `table_name` DROP `id`;
ALTER TABLE `table_name` ADD 'id' mediumint(6) PRIMARY KEY NOT NULL AUTO_INCREMENT FIRST;
#清空数据不影响自增字段排序
truncate table 表名

互换表中两列数据

update [table1] as a, [table1] as b set a.[column1]=b.[column2], a.[column2]=b.[column1] where a.id=b.id;

导出表,导出库,导入数据

#导出某表
mysqldump -u root -p [database_name] [table_name] > /xx/xx/xxx.sql;
#导出所有的库
mysqldump  -uroot -p --all-databases
#导入数据
mysql -u root -p;
use datebase;
source /xx/xx/xx.sql;

将查询结果保存至新表,导出查询结果

#表存在
insert into tab1 select * from tab2;
#表不存在
create table tab1 as select * from tab2;
#导出查询结果
SELECT {} from [table_name] where 条件 into outfile './xx/xx/x.sql';
#mysqldump
mysqldump -u用户名 -p -c --default-character-set=字符集 数据库名 数据表 --where="查询条件" > 保存路径和文件名

数据库日期函数

  • oracle数据库语法
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串
select to_char(sysdate,'yyyy-mm-dd') as nowTime from dual;  //更换日期格式
  
select to_char(sysdate,'yyyy') as nowYear from dual;   //获取时间的年  
select to_char(sysdate,'mm') as nowMonth from dual;   //获取时间的月  
select to_char(sysdate,'dd') as nowDay from dual;   //获取时间的日  
select to_char(sysdate,'hh24') as nowHour from dual;   //获取时间的时  
select to_char(sysdate,'mi') as nowMinute from dual;   //获取时间的分  
select to_char(sysdate,'ss') as nowSecond from dual;   //获取时间的秒

select {} from table_name where 日期字段 >= to_char(sysdate-1,'yyyy-mm-dd') //查询昨天到今天的数据
  • sqlserver数据库语法
Select CONVERT(varchar(100), GETDATE(), 0)// 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1)// 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2)// 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3)// 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4)// 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5)// 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6)// 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7)// 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8)// 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9)// 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10)// 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11)// 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12)// 060516
Select CONVERT(varchar(100), GETDATE(), 13)// 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14)// 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20)// 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21)// 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22)// 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23)// 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24)// 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25)// 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100)// 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101)// 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102)// 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103)// 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104)// 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105)// 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106)// 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107)// 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108)// 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109)// 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110)// 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111)// 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112)// 20060516
Select CONVERT(varchar(100), GETDATE(), 113)// 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114)// 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120)// 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121)// 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126)// 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130)// 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

select {} from {} where date_column between '2019-1-1' and '2019-2-1';

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0
昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1
7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7
30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30
本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0
本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0
  • mysql数据库语法
# 字符串转换日期
select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09
select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09
select str_to_date('08.09.2008', '%m.%d.%Y'); -- 2008-08-09
select str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30
select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30
#(日期/时间转换为字符串)函数:date_format(date,format), time_format(time,format)
select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s');
#输出      20080808222301

猜你喜欢

转载自blog.csdn.net/weixin_43819222/article/details/87985845
今日推荐