范围查询是用来查询给定的两个值之间的数据,通常使用BETWEEN …… AND 和 NOT …… BETWEEN …… AND来指定范围条件
在使用BETWEEN …… AND查询条件的时候,指定的第一个值必须小于第二个值,因为BETWEEN …… AND的实质是查询条件大于或者等于第一个值,并且小于等于第二个值的简写形式,等价于比较运算符">=....<="
SELECT
id AS '商品id',
`name` AS '商品名称',
original_price AS '价格'
FROM
goods
WHERE
original_price BETWEEN 1000
AND 2000;
查询两个日期之间的数据也可以使用BETWEEN来实现,可以使用日期类型的数据作为查询条件
SELECT
id,
`name`,
addtime
FROM
goods
WHERE
addtime BETWEEN '2016-07-20 09:58:53'
AND '2016-07-20 10:58:53';
通过GETDATE()函数和DATEADD()函数,获取当天的日期和前一天的日期,在通过使用BETWEEN……AND来查询在这两个日期之间的数据
SELECT GETDATE();
可以使用NOT BETWEEN…… AND 来实现
SELECT
id,
`name`,
original_price
FROM
goods
WHERE
original_price NOT BETWEEN 2000
AND 3000;
5.1 转换日期格式
有时候数据库中表存储的日期可能不是规范的日期形式,为了方便用户查看,需要将日期转换为四位数字的年份,同时改变日期格式,如将‘02.09.02’转换为‘2002-09-02’的格式
CONVERT(char(10),getdat(),120) 将日期转换成yyyy-mm-dd格式时间,其中120是格式代码,char(10)是指取出前10位字符
REPLACE()函数寻找列值中的'-',将其转换为'/'
-- 查询所有图书信息
SELECT id ,`name`,current_price,addtime FROM goods ORDER BY addtime;
-- 把长日期格式数据转换为短日期格式数据
SELECT id,`name`,current_price,CONVERT(char(10),addtime,120) AS '录入日期' FROM goods ORDER BY id;
-- 将日期的格式中的'-'转换为'/'
SELECT id,`name`,`REPLACE`(CONVERT(char(10),addtime,120,'-','/') AS '录入日期' FROM goods ORDER BY id;
5.2 计算两个日期的时间间隔天数
使用DATEDIFF()函数计算日期间隔天数
语法(MYSQL)
DATEDIFF(expr1,expr2)
参数说明:
该函数返回其实时间expr1和结束时间expr2之间的天数,expr1和expr2为日期或者date-and-time表达式,计算中只取这些值的日期部分
SELECT
书号,书名, CONVERT (
CHAR (10),
出版日期,120
) 出版日期, CONVERT (
CHAR (10),
下一次出版日期,120
) 出版日期, DATEDIFF(
DAY,
出版日期,下一次出版日期
) 两次出版相差的天数
FROM
goods
5.3 按照指定日期查询数据
返回代表指定的日期的天日期部分的整数
DAY(date)
参数说明:
date: 类型为datetime 或者smalldatetime的表达式
DAY()函数返回值的数据类型为int
SELECT DAY(0) AS MY_DAY1,DAY('02/03/2018') AS MY_DAY2
实现按月查询
SELECT "month number" = MONTH('03.11.2017')
返回表示指定日期中的年份的整数
SELECT
YEAR(-1) AS MY_YEAR1,
YEAR(3) AS MY_YEAR2,
YEAR('08/13/2018') AS MY_YEAR3;
举例 查询日期的月和年
SELECT
id,
`name`,
is_sale,
addtime
FROM
goods
WHERE
MONTH (addtime) = 7
AND YEAR (addtime) = 2016
AND is_sale = 1;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。