精华内容
下载资源
问答
  • 日期数据在SQL表达式中的应用 在SQL表达式运算符条件中,要查询日期和时间类型的数据,需要在数据值两端加上井字符号(#)以表示日期类型。 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”...

    日期数据在SQL表达式中的应用 在SQL表达式运算符条件中,要查询日期和时间类型的数据,需要在数据值两端加上井字符号(#)以表示日期类型。 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”的表示方式。也就是说年月日之间的分隔符可以用“-”或“/”。 例如表示2018年3月15日 可以采用以下表达式:

    年月日 #2018-03-15#

    年日月 #2018-15-03#

    年月日 #2018/03/15#

    日月年 #15/13/2018/#

    月日年 #15/03/2018#

    以表达式在系统无错识别最高的应该是 月/日/年 #03/15/2018# 本例将采用“月/日/年”的写法

    源数据:

    6f318276fc1ed2f6a0a41fe707dd0032.png

    查询内容

    筛选出2018年3月15日的数据:

    SQL = "SELECT * FROM [日期$A1:C19] WHERE 日期=#15/03/2018#"

    结果如下图:

    2e889155dea40b06b582801c6b86bf5f.png

    筛选出二个日期的数据:

    SQL = "SELECT * FROM [日期$A1:C19] WHERE 日期=#15/03/2018# or 日期=#18/03/2018# "

    结果如下图:

    048920ee9d6c2712bafd2ff9f7d390e5.png

    注意事项:

    表达式是分别是“#5/1/2018#和#1/5/2018#” 2018年1月5日 “#1/5/2018#”和“#5/1/2018#”就会发生混淆。系统默认是月在日前。应该采用"月/日/年"或“年/月/日”的写法,避免系统不能识别,导致查询结果错误。

    VBA+ADO+SQL语句,小试牛刀。

    SQL 查询语句-WHERE

    私信 SQL 可以获取SQL代码的Excel文件

    私信 视频 可以获取54集VBA入门视频

    私信 VBA或 vba 可以获取文章中含VBA代码的Excel文件

    展开全文
  • 以下Sql语句所用到的表:1. 视图(1)定义视图可被看成是虚拟表或存储查询。表中存放的是实际数据,视图中存放的是sql查询语句,使用视图时,会运行视图里的sql查询语句,创建出一张临时表。(2)语法create view ...

    3ee2bfe3644e0efa7aff01e179e72e56.png

    以下Sql语句所用到的表:

    c88a51a8ad7800cbf38a632cb18fbe68.png

    1. 视图

    (1)定义

    视图可被看成是虚拟表或存储查询。表中存放的是实际数据,视图中存放的是sql查询语句,使用视图时,会运行视图里的sql查询语句,创建出一张临时表。

    (2)语法

    create view 视图名称(<视图列名1>,<视图列名2>,…)
    as
    <select 查询语句>;

    (3)例子

    ①创建视图

    create view 按性别汇总(性别,人数)
    as
    select 性别,count(*)
    from student
    group by 性别;

    ②使用视图【在from子句中,使用视图名称代替表名称】

    select 性别,人数
    from 按性别汇总;

    (4)作用

    • 数据庞大时,使用视图帮助我们提高效率。
    • 视图中的数据随着原表的变化自动更新,保证数据的最新状态。
    • 视图不需要保存数据,可以节省存放数据设备的空间。

    (5)注意事项

    • 避免在视图的基础上再去创建视图,多重视图会降低sql的性能和效率。
    • 不能往视图里插入数据,不然会报错。

    2. 子查询

    (1)标量(单行)子查询

    通过比较运算符、between连接起来的嵌套查询,子查询的结果只能返回单个值。

    ①查找大于平均成绩学生的学号和成绩

    select 学号,成绩
    from score
    where 成绩>(select avg(成绩)
                from score);

    ②查找处于差生(成绩<=60)和优等生(成绩>=80)之间成绩学生的学号和成绩

    select 学号,成绩
    from score
    where 成绩 between (select avg(成绩)
                        from score
                        where 成绩<=60) and(select avg(成绩)
                                            from score
                                            where 成绩>=80);

    ③查找学生的学号、成绩和平均成绩

    select 学号,成绩,(select avg(成绩)
                      from score) as 平均成绩
    from score;

    (2)多行子查询

    通过in、any、all连接起来的嵌套查询,子查询的结果返回多行。

    ①哪些学生的成绩比课程0002的全部成绩里的任意一个高呢?

    select 学号,成绩
    from score
    where 成绩>any(select 成绩
                   from score
                   where 课程号='0002');

    ②查询选了2门以上课程的学生的学号、姓名和性别

    select 学号,姓名,性别
    from student
    where 学号 in (select 学号
                   from score
                   group by 学号
                   having count(*)>2);

    ③查询学生表中年龄最大的学生信息

    方法1:
    select *
    from student
    where 出生日期<=all(select 出生日期
                        from student);
    方法2:
    select *
    from student
    where 出生日期<=(select min(出生日期)
                     from student);

    (3)关联子查询

    每个组里进行比较时,需要用到关联子查询。

    例子:查找出每个课程中,大于对应课程平均成绩的学生

    select *
    from score as a 
    where 成绩>(select avg(成绩) 
                from score as b 
                where b.课程号 = a.课程号);

    (4)总结

    c857f307b064c1775928a32a24f50e27.png

    3. SQL运行顺序

    4e22d2177a8eecc00fa7ad9e42c5fb59.png

    4. 如何用SQL解决业务问题

    (1)步骤

    • 第1步:翻译成大白话;
    • 第2步:写出分析思路;
    • 第3步:写出对应的sql语句。

    (2)例子

    哪些学生的成绩比课程0002的全部成绩里的任意一个高呢?

    1)第1步:翻译成大白话

    • ①课程0002的全部成绩;
    • ②条件:某个学生的成绩大于任意一个①里的成绩。

    2)第2步:写出分析思路

    504a2ecf350fba7ccb5f9289b09951ac.png

    a36de4bd598cf2c91e9b0727b2816d39.png

    3)第3步:写出对应的sql语句

    7f5a6d23cb50d82990d03ccd13d28875.png

    5. 函数查询

    (1)汇总函数

    4e282cad2b1452f773702c5d1972070a.png

    (2)算数函数

    1a7c4e9875b7ef91f7c563f8db04f9f2.png

    (3)字符串函数

    bb4ad0e3ff2aa82d5ceeda80eb2c456b.png

    (4)日期函数

    6a8ca7ab8a7e5b4758991efaebe417b8.png
    展开全文
  • 查询 年月日时分秒格式的时间,怎么能筛选出大于某天的数据 SUBSTR (str, pos, len) 由 中的第 位置开始,选出接下去的 个字元。 示例: SELECT SUBSTR (Store_Name, 1, 10) FROM Geography WHERE Store_Name = '...

    多表关联

    with tt as (),tt2 as (),c as()

    select tt.d,c.t,count(distinct tt.user_id) as uv from tt

    left join tt2 on tt.u = tt2.u and tt.a = tt2.a

    left join c on tt2.d = c.d

    group by tt.d,c.t order by uv desc limit 1000

    建表

    CREATE TABLE temp.local_architecture
    (
    type varchar(255),
    cityCode varchar(255),
    province varchar(255),
    city varchar(255),
    district varchar(255),
    fromid_hide varchar(255),
    fromid_name_hide varchar(255),
    fromid_visible varchar(255),
    fromid_name_visible varchar(255)
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED
    BY 't' ;

    删表数据

    DELETE FROM 表名

    插入数据

    INSERT INTO 表名 (字段) VALUES (值)

    linux筛选某列不为空的所有数据

    cat 表名 | awk '{if ($1!="NULL") print}' >CC

    筛选距离某个日期多少天

    示例:筛选3.11往前推90天的所有日期

    p_day >= cast(date '2019-03-11' - interval '90' day as varchar)

    **把TXT文件导入到hive表中

    1、# hadoop fs -put e36168.txt
    # hadoop fs -ls -h
    2、登录hive并进入到指定数据库
    3、创建表
    create external table if not exists fun_user_external ( tid INT, userid STRING, pwd STRING, create_time BIGINT, email STRING ... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '`' STORED AS TEXTFILE
    4、执行导入语句
    load data inpath '文件名' into table fun_user_external;
    load data local inpath '文件名' into table fun_user_external;

    查询 年月日时分秒格式的时间,怎么能筛选出大于某天的数据

    SUBSTR (str, pos, len)

    由 <str> 中的第 <pos> 位置开始,选出接下去的 <len> 个字元。

    示例:

    SELECT SUBSTR (Store_Name, 1, 10)
    FROM Geography
    WHERE Store_Name = 'San Diego';

    其他用法

    SUBSTR (str, pos)

    由 <str> 中,选出所有从第 <pos> 位置开始的字元

    sql时间戳转换为日期

    format_datetime(from_unixtime(create_time/1000),'yyyy-MM-dd')

    0817a9b4385475d3a3617acef210a0da.png
    Excel时间戳转换为日期

    regexp_replace(SUBSTR (create_time, 1, 10), '-', '') as create_time, 调整日期格式

    列举目录下文件用hadoop fs -ls /user/

    查看文件内容用 hadoop fs -text /user/

    查询用户总数 hdfs dfs -cat /user/文件地址 |grep -e '[a-z]' | wc -l

    展开全文
  • 【题目】下面是公司每天的营业额,表名为“日销”。“日期”这一列的数据类型是日期类型(date)。请找出所有比前一天(昨天)营业额更高的数据。(前一天的意思,如果“当天”是1月,“昨天”(前一天)就是1号)例如需要...

    f3d5410df8908759977347145d3bfd4b.png

    【题目】

    下面是某公司每天的营业额,表名为“日销”。“日期”这一列的数据类型是日期类型(date)。

    3848ca3ad0aee693523a4358a5bcb824.png

    请找出所有比前一天(昨天)营业额更高的数据。(前一天的意思,如果“当天”是1月,“昨天”(前一天)就是1号)

    例如需要返回一下结果:

    9058ce0ec087f48ade63d0a824488fe0.png

    【解题思路】

    1.交叉联结

    首先我们来复习一下之前课程《从零学会sql》里讲过的交叉联结(corss join)的概念。

    使用交叉联结会将两个表中所有的数据两两组合。如下图,是对表“text”自身进行交叉联结的结果:

    108458374575907bbb831c7e8502b907.png

    直接使用交叉联结的业务需求比较少见,往往需要结合具体条件,对数据进行有目的的提取,本题需要结合的条件就是“前一天”。

    2.本题的日销表交叉联结的结果(部分)如下。这个交叉联结的结果表,可以看作左边三列是表a,右边三列是表b。

    18410ef367e16d6cf78d088af23a0408.png

    红色框中的每一行数据,左边是“当天”数据,右边是“前一天”的数据。比如第一个红色框中左边是“当天”数据(2号),右边是“前一天”的数据(1号)。

    题目要求,销售额条件是:“当天” > “昨天”(前一天)。所以,对于上面的表,我们只需要找到表a中销售额(当天)大于b中销售额(昨天)的数据。

    3.另一个需要着重去考虑的,就是如何找到 “昨天”(前一天),这里为大家介绍两个时间计算的函数:

    datediff(日期1, 日期2):

    得到的结果是日期1与日期2相差的天数。

    如果日期1比日期2大,结果为正;如果日期1比日期2小,结果为负。

    例如:日期1(2019-01-02),日期2(2019-01-01),两个日期在函数里互换位置,就是下面的结果

    dc64448a819351947ee87553769621f8.png

    另一个关于时间计算的函数是:

    timestampdiff(时间类型, 日期1, 日期2)

    这个函数和上面diffdate的正、负号规则刚好相反。

    日期1大于日期2,结果为负,日期1小于日期2,结果为正。

    在“时间类型”的参数位置,通过添加“day”, “hour”, “second”等关键词,来规定计算天数差、小时数差、还是分钟数差。示例如下图:

    bf411e82f1ff676595f66bcd355ea172.png

    【解题步骤】

    1.将日销表进行交叉联结

    e412ead646abb54b477e7033f09e9678.png

    2.选出上图红框中的“a.日期比b.日期大一天”

    可以使用“diffdate(a.日期, b.日期) = 1”或者“timestampdiff(day, a.日期, b.日期) = -1”,以此为基准,提取表中的数据,这里先用diffdate进行操作。

    代码部分:

    select *from 日销 as a cross join 日销 as b      on datediff(a.日期, b.日期) = 1;

    得到结果:

    8865321455981ae4a2ae38d6d895bbdc.png

    3.找出a中销售额大于b中销售额的数据

    where a.销售额(万元) > b.销售额(万元)

    得到结果:

    8d83a95310fea72e91f535a8339027bc.png

    4.删掉多余数据

    题目只需要找销售额大于前一天的ID、日期、销售额,不需要上表那么多数据。所以只需要提取中上表的ID、日期、销售额(万元)列。

    结合一开始提到的两个处理时间的方法,最终答案及结果如下:

    select a.ID, a.日期, a.销售额(万元)from 日销 as a cross join 日销 as b      on datediff(a.日期, b.日期) = 1where a.销售额(万元) > b.销售额(万元);

    或者

    select a.ID, a.日期, a.销售额(万元)from 日销 as a cross join 日销 as b      on timestampdiff(day, a.日期, b.日期) = -1where a.销售额(万元) > b.销售额(万元);

    77f5f99f91bbf74846b7c86602492089.png

    【本题考点】

    1)考察逻辑思维能力,可以使用课程《分析方法》中的逻辑树分析方法将复杂问题拆解成一个一个可以解决的子问题

    2)考察多表联结

    3)针对时间的处理语句是在业务中经常用到的,需要熟练掌握。

    4) 尤其考察对不同sql数据格式处理的掌握程度,

    【举一反三】

    下面是气温表,名为weather,date列的数据格式为date,请找出比前一天温度更高的ID和日期

    fed45055f726005e3d1ee00e732d3ad8.png

    参考答案:

    select a.ID, a.datefrom weather as a cross join weather as b      on datediff(a.date, b.date) = 1where a.temp > b.temp;

    或者:

    select a.ID, a.datefrom weather as a cross join weather as b      on timestampdiff(day, a.date, b.date) = -1where a.temp > b.temp;

    得到结果:

    a289a02914abe1a1aea53c4a8c93099f.png

    推荐:如何从零学会人工智能必备技能:数据库和sql?

    37ba1bcf2f805a5e7f7e992e5ac2d308.png

    展开全文
  • 有一个挺大的表,有一个日期时间型字段,我想查是否有一天的数据,我的sql是这样的: select COUNT(*) from WenJin where CONVERT(varchar(100), time, 112)='20180418' 最后看count的值是否大于0,如果大于0就...
  • sql语句之日期比较

    千次阅读 2018-12-20 19:59:36
    1.判断是否在某个日期区间内 Where CheckDate Between startTime And endTime Where CheckDate &gt;= '2013-01-01' And CheckDate...2.判断是否大于某天 Where CheckDate &gt;startTime 或大于等于:Whe...
  • sql查询时间大于某天的数据如查询时间大于2020/05/14这一天的数据,首先可能想到这样写select * from STUDENT where TIME>'2020/05/14'但这种方式写出来,查询的结果还是会有5/14当天的,原因是实际上,在解读这...
  • 大家都知道SAP中日期和时间是分开放的,假如说我们需要一天的开始时间到另外一天的时间这段区间内的数据,我们就得分几种情况写。1.是否跨了大于一天,2.是否只跨一天 3.是否不跨天,挺麻烦的,现在就想直接把...
  • SQL语法大全

    2014-03-30 11:00:11
    COUNT(*|字段名) 对数据行数的统计或对一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum...
  •  实例338 利用聚合函数COUNT求日销售额大于某值的商品数 495  实例339 利用聚合函数First或Last求数据表中第一条或最后一条记录 496  10.11 多表查询(连接查询) 498  实例340 利用FROM子句进行多表...
  • T-SQL高级查询

    2015-04-26 14:17:13
    1、 对张表进行排序,序号需要递增不重复的 2、 对学生的成绩进行排序,得出名次,名次可以并列,但名次的序号是连续递增的 3、 在某些排序的情况下,需要跳空序号,虽然是并列 基本语法 排序函数 over(...
  • 2009达内SQL学习笔记

    2010-02-10 19:46:58
    大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...
  • 数据库SQL语句练习题(一)

    千次阅读 2020-06-30 22:50:35
    健身俱乐部开发一个信息管理系统,该信息系统的部分关系模式如下: 会员(会员手机号,姓名,折扣) 项目(项目名称,项目经理,价格) 消费(流水号,会员手机号,项目名称,消费金额,消费日期) (1)新建消费表,要求...
  • php中文网最新课程每日17点准时技术干货分享啰嗦(可跳过)前几天面试,笔试时遇到这道题,读了...问题游戏使用mysql数据库,数据表 scores 记录用户得分历史,uid 代表用户ID, score 表示分数, date 表示日期,每...
  • 感觉麻烦就没有将表建进来,...//查询日期等于天的 select * from tm_cis_req_prd_his t  where t.req_date = '20170522' select * from tm_zm_score t  where t.zm_score='666' //大于芝麻分666的 select zm_sco
  • 日志文件按日期记录,同一天内,若日志文件大小等于或大于2M,则按0、1、2...顺序分别命名 例如log-level-2013-12-21.0.log 其它级别的日志也是如此。 2、文件路径 若开发、测试用,在Eclipse中运行项目,...
  • 出版日期:2011 年11月 开本:16开 页码:502 版次:1-1 主编推荐  资深Oracle专家力作,OakTable团队推荐  全面、独到、翔实,题材丰富  Oracle开发人员和DBA必备 内容简介  Oracle 数据库中的SQL是当今市场...
  • 出版日期:2011 年11月 开本:16开 页码:502 版次:1-1 主编推荐  资深Oracle专家力作,OakTable团队推荐  全面、独到、翔实,题材丰富  Oracle开发人员和DBA必备 内容简介  Oracle 数据库中的SQL是当今市场...
  • 4、空间大小:初始安装大于200Mb,随着会员数量增多,空间及数据库要求会逐渐增大! 5、IIS创建网站最好创建独立应用池,以提高程序运行速度! 二、网站搭建: 1、要求系统安装IIS即Internet 信息服务(IIS),...
  • 事故有日期,驾驶员,事故损失量。假定每个人 可以有多辆汽车。 要求: 1. 设计数据库,建立必要的表来保存上述信息,定义表的时候要给出需要的主外定义, 要求姓名不为空。 2. 插入相应数据使下诉检索不...
  • 一道很贱的面试题

    2014-07-25 19:42:00
    数据库有表有三个主键ID,日期From,日期To,其中ID下日期From一定小于等于日期To。如何判断新插入的字段日期区间互相不重叠,新插入的字段日期From也一定小于等于日期To。 也就是说这样的数据是可以的 而...
  • 第9章 SQL查询相关技术 9.1 通用查询 实例294 SELECT语句的应用方法 实例295 SQL语句的模糊查询 实例296 利用查询语句复制表结构 9.2 周期、日期查询 ...实例306 利用聚集函数COUNT求日销售额大于某值的商品数
  • 数据库练习题(五)

    2020-07-01 20:12:18
    一、【问题描述】 阅读下列说明,回答问题 1 至问题 3 [说明] 网上书店后台数据库的部分关系模式如下: ...地址,邮编,电话,消费额,积分) 图书(图书编号,类型名称,图书名称,作者...要求订购日期不能大于出货日期
  • 筛选出数据库中近三个...mysql数据库表名为当天日期,一天生成一个表,表里有用户ID字段:uuid,登陆时间字段:ctime,如何写一句sql语句过滤筛选出三个月内一个用户ID几次登陆时间中两次登陆时间大于14天的用户ID?
  • 分页查询总结

    2014-01-16 19:14:00
    要求:从一个年月往前推,合格数据(成绩大于3)的连续条数,只要发现有一条不符合条件,就停止下来,当前的连续记录数就是要求的结果,不管前面是否还有连续的记录条数。 思路: 1.可以先找出...
  • 啰嗦(可跳过)前几天面试,笔试时...问题游戏使用mysql数据库,数据表 scores 记录用户得分历史,uid 代表用户ID, score 表示分数, date 表示日期,每个用户每天都会产生多条记录。数据结构以及数据行如下:现在...
  • 啰嗦(可跳过)前几天面试,笔试时...问题游戏使用mysql数据库,数据表 scores 记录用户得分历史,uid 代表用户ID, score 表示分数, date 表示日期,每个用户每天都会产生多条记录。数据结构以及数据行如下:ui...
  • 健身俱乐部开发一个信息管理系统,该信息系统的部分关系模式如下: 会员(会员手机号,姓名,折扣) 项目(项目名称,项目经理,价格) 消费(流水号,会员手机号,项目名称,消费金额,消费日期) 请用关系代数式...
  • 13.dual表是用来计算的表 可以用来round:四舍五入,trunc:截断小数位,mod取余,ceil:求大于等于数的最小整数。例:ceil(2.35) 3,floor:求小于等于数的最大整数。例:floor(2.35) 2。 select round(123.123,要...
  • transMoney 交易金额 必填,大于0 remark 备注 可选,其他说明 2、使用SQL语言在每个表上添加约束 主键约束、外键约束、CHECK约束、默认约束、非空约束 二、插入测试数据 使用SQL语言向每个表中插入至少3条记录 三...

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

sql日期大于某日期