MySQL--常见语句

50 阅读2分钟

日期函数:

SELECT
	#系统日期,yyyy-mm-dd HH:mi:ss
	SYSDATE(),
	#系统日期,yyyy-mm-dd 
	CURDATE(),
	#系统日期,yyyy-mm-dd HH:mi:ss
	NOW(),
	#计算日期是星期几
	DAYNAME(NOW()),
	DATE('2019-1-1 01:11:11'),
	STR_TO_DATE(
		'2019-1-1 01:11:11',
		'%Y-%m-%d %H:%i:%s'
	),
	#格式化日期
	DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'),
	#day1-day2的天数
	DATEDIFF('2019-1-1', NOW()),
	#日期变化  type:MICROSECOND、SECONDMINUTEHOURDAY、WEEK、MONTH、QUARTER、YEAR、YEAR_MONTH以下的两两组合
	DATE_ADD(NOW(), INTERVAL - 3 DAY)
FROM
	DUAL;

运行结果:

 `SYSDATE()` = '2019-08-03 17:25:11',
 `CURDATE()` = '2019-08-03',
 `NOW()` = '2019-08-03 17:25:11',
 `DAYNAME(NOW())` = 'Saturday',
 `DATE('2019-1-1 01:11:11')` = '2019-01-01',
 `STR_TO_DATE(
		'2019-1-1 01:11:11',
		'%Y-%m-%d %H:%i:%s'
	)` = '2019-01-01 01:11:11',
 `DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')` = '2019-08-03 17:25:11',
 `DATEDIFF('2019-1-1', NOW())` = '-214',
 `DATE_ADD(NOW(), INTERVAL - 3 DAY)` = '2019-07-31 17:25:11'

复制表结构和数据:

(一) 只复制表结构,包括主键、索引,但不会复制表数据
	create table tb1 like tb2;
(二) 只复制表结构,不包括主键、索引,不会复制表数据
#通过where条件不成立不复制数据,只复制表结构
create table tb1 select * from tb2 where 1=0;
(三) 复制表的大体结构及全部数据,不会复制主键、索引等
#sql1
create table tb1 select * from tb2;
#sql2
create table tb1 as select * from tb2;
(四) 复制表的大体结构及全部数据,包括复制主键、索引等
	create table tb1 like tb2;
  #tb1和tb2字段顺序一致
  insert into tb1 select * from tb2;
  #tb1和tb2字段不一致
  insert into tb1(col1,col2...) select col1,col2... from tb2;