Sql笔试题第二天-查询与之前(昨天的)日期相比温度更高的所有日期
给定一个表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。
字段及数据如下所示:
查询结果如下所示:
题解:
看到这道题的题意,根据题目中(查找与之前(昨天的)日期相比)我们首先想到的是日期之间差一天,即将表定义为两个表A、B。
把A表看到昨日数据,B表看作今日数据。即A表的日期加1天等于B表的日期,B表的温度大于A表温度即可。
语法:
利用函数(文末有介绍)
SELECT B.ID from Weather AS A
INNER JOIN Weather AS B ON A.Temperature
函数(文末有介绍)
SELECT B.ID from Weather AS A
INNER JOIN Weather AS B ON A.Temperature
Mysql语法:
函数(文末有介绍)
SELECT b.id FROM Weather AS A
INNER JOIN Weather AS B ON A.Temperature
函数(文末有介绍)
SELECT b.id FROM Weather AS A
INNER JOIN Weather AS B ON A.Temperature
语法:
round(())函数,由于本机上没有,所有没有进行
select b.id from Weather AS A
INNER JOIN Weather AS B ON A.Temperature
也可以直接在日期上加1,由于本机上没有,所有美欧测试
select b.id from Weather AS A
INNER JOIN Weather AS B ON A.Temperature
方法还有很多,不一一举例了。。。
Mysql 函数定义和用法 定义和用法
() 函数向日期添加指定的时间间隔。
语法
DATE_ADD(date,INTERVAL expr type)
date参数是合法的日期表达式。expr参数是您希望添加的时间间隔。
type 参数可以是下列值:
Type 值
HOUR
DAY
WEEK
MONTH
YEAR
Mysql 函数定义和用法
() 函数返回两个日期之间的天数。
语法
DATEDIFF(date1,date2)
date1和date2参数是合法的日期或日期/时间表达式。
注释:只有值的日期部分参与计算。
SQL ()函数 定义和用法
() 函数返回两个日期之间的天数
语法
DATEDIFF(datepart,startdate,enddate)
和参数是合法的日期表达式。
参数可以是下列的值:
缩写
年
yy, yyyy
季度
qq, q
月
mm, m
年中的日
dy, y
日
dd, d
周
wk, ww
星期
dw, w
小时
hh
分钟
mi, n
秒
ss, s
毫秒
ms
微妙
mcs
纳秒
ns
SQL ()函数 定义和用法
() 函数在日期中添加或减去指定的时间间隔。
语法
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
Mysql是前面的值减后面的值,而是后面的值减前面的值