废话不多说,我们直接来看相关日期函数:
日期:年月日
时间:时 分 秒
-- 获得年月日:
select current_date();
-- 获得时分秒:
select current_time();
--获得时间戳:
select current_timestamp();
在日期的基础上加日期:
select date_add('2017-10-28', interval 10 day);
在日期的基础上减去时间:
select date_sub('2017-10-1', interval 2 day);
计算两个日期之间相差多少天:
select datediff('2023-10-10','2023-6-15');
创建一张表,记录生日:
mysql> create table tmp(
-> id bigint primary key auto_increment,
-> birthday date not null
-> );
Query OK, 0 rows affected (0.03 sec)
插入日期:
insert into tmp (birthday) values ('1999-01-01');
创建一个留言表:
mysql> create table msg(
-> id bigint primary key auto_increment,
-> content varchar(100) not null,
-> sendtime datetime
-> );
Query OK, 0 rows affected (0.06 sec)![image-20230615231123122](https://bloggggg.oss-cn-guangzhou.aliyuncs.com/img/202306152311154.png)
插入数据:
insert into msg (content,sendtime) values ('好好学习,天天向上',now());
请查询在2分钟内发布的帖子:
如何确认表中的数据是2min以内的:
select content,sendtime from msg where sendtime > date_sub(now(),interval 2 minute);
直接举例子:
select charset(sal) from emp;
select concat('考生姓名: ',name,'总分: ',chinese+math+english,',语文成绩: ',chinese,',',math'数学成绩: ,',math,',英语成绩: ',english) msg from exam_result;
select name,length(name) from exam_result;
注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)
select ename,replace(ename,'S','上海') from emp;
select substring(ename,2,2), ename from emp;
select ename,concat(lcase(substring(ename,1,1)),substring(ename,2)) from emp;
select abs(-100.2);
select bin(10);
select ceiling(23.11);
-- 24
select floor(23.99);
-- 23
select format(12.3456,2);
-- 12.35
select rand();
select mod(10,3);
-- 1
select user();
比如我们对一个表插入数据时,涉及到密码,可以用到md5:
insert into user (name,password) values ('李四',md5('helloworld'));
select database();
select password('12233344455');
select ifnull(null,10) result;
SQL245 查找字符串中逗号出现的次数
描述
现有strings表如下:
id指序列号;
string列中存放的是字符串,且字符串中仅包含数字、字母和逗号类型的字符。
请你统计每个字符串中逗号出现的次数cnt。
以上例子的输出结果如下:
示例1
输入:
drop table if exists strings; CREATE TABLE strings( id int(5) NOT NULL PRIMARY KEY, string varchar(45) NOT NULL ); insert into strings values (1, '10,A,B'), (2, 'A,B,C,D'), (3, 'A,11,B,C,D,E');
输出:
1|2 2|3 3|5
先把逗号替换成空格,然后总的个数减去替换之后的个数自然就是逗号的个数了:
select id,length(string)- length(replace(string,",","")) from strings;