精华内容
下载资源
问答
  • 一个日期字段作为查询条件。 这时就要使用格式化日期的函数进行日期的比较。 实现 成功的示例代码: SELECT COUNT ( 1 ) FROM bus_logistics_order WHERE deleted_flag = '0' AND CONVERT ( VARCHAR ( 100 ...

    场景

    查询sqlserver数据库中某一天的数据的数量。

    要以一个日期字段作为查询条件。

    这时就要使用格式化日期的函数进行日期的比较。

    实现

    成功的示例代码:

    SELECT COUNT
     ( 1 )
    FROM
     bus_logistics_order
    WHERE
     deleted_flag = '0'
     AND CONVERT ( VARCHAR ( 100 ), gmt_creat, 23 ) = '2019-05-08';

    其中gmt_creat是数据库中的时间字段。

    其中23是格式化日期的格式代码。23就代表格式化为yyyy-MM-dd样式的。

    其他样式参考:

    Select CONVERT(varchar(100), GETDATE(), 23): 2019-05-09
    Select CONVERT(varchar(100), GETDATE(), 0): 05  9 2019  9:15AM
    Select CONVERT(varchar(100), GETDATE(), 1): 05/09/19
    Select CONVERT(varchar(100), GETDATE(), 2): 19.05.09
    Select CONVERT(varchar(100), GETDATE(), 3): 09/05/19
    Select CONVERT(varchar(100), GETDATE(), 4): 09.05.19
    Select CONVERT(varchar(100), GETDATE(), 5): 09-05-19
    Select CONVERT(varchar(100), GETDATE(), 6): 09 05 19
    Select CONVERT(varchar(100), GETDATE(), 7): 05 09, 19
    Select CONVERT(varchar(100), GETDATE(), 8): 09:16:39
    Select CONVERT(varchar(100), GETDATE(), 9): 05  9 2019  9:16:51:207AM
    Select CONVERT(varchar(100), GETDATE(), 10): 05-09-19
    Select CONVERT(varchar(100), GETDATE(), 11): 19/05/09
    Select CONVERT(varchar(100), GETDATE(), 12): 190509
    Select CONVERT(varchar(100), GETDATE(), 13): 09 05 2019 09:17:27:600
    Select CONVERT(varchar(100), GETDATE(), 14): 09:17:39:190
    Select CONVERT(varchar(100), GETDATE(), 20): 2019-05-09 09:17:45
    Select CONVERT(varchar(100), GETDATE(), 21): 2019-05-09 09:17:53.190
    Select CONVERT(varchar(100), GETDATE(), 22): 05/09/19  9:18:04 AM
    Select CONVERT(varchar(100), GETDATE(), 23): 2019-05-09
    Select CONVERT(varchar(100), GETDATE(), 24): 09:18:21
    Select CONVERT(varchar(100), GETDATE(), 25): 2019-05-09 09:18:32.690
    Select CONVERT(varchar(100), GETDATE(), 100): 05  9 2019  9:18AM
    Select CONVERT(varchar(100), GETDATE(), 101): 05/09/2019
    Select CONVERT(varchar(100), GETDATE(), 102): 2019.05.09
    Select CONVERT(varchar(100), GETDATE(), 103): 09/05/2019
    Select CONVERT(varchar(100), GETDATE(), 104): 09.05.2019
    Select CONVERT(varchar(100), GETDATE(), 105): 09-05-2019
    Select CONVERT(varchar(100), GETDATE(), 106): 09 05 2019
    Select CONVERT(varchar(100), GETDATE(), 107): 05 09, 2019
    Select CONVERT(varchar(100), GETDATE(), 108): 09:20:22
    Select CONVERT(varchar(100), GETDATE(), 109): 05  9 2019  9:20:28:533AM
    Select CONVERT(varchar(100), GETDATE(), 110): 05-09-2019
    Select CONVERT(varchar(100), GETDATE(), 111): 2019/05/09
    Select CONVERT(varchar(100), GETDATE(), 112): 20190509
    Select CONVERT(varchar(100), GETDATE(), 113): 09 05 2019 09:20:57:380
    Select CONVERT(varchar(100), GETDATE(), 114): 09:21:06:503
    Select CONVERT(varchar(100), GETDATE(), 120): 2019-05-09 09:21:13
    Select CONVERT(varchar(100), GETDATE(), 121): 2019-05-09 09:21:20.330
    Select CONVERT(varchar(100), GETDATE(), 126): 2019-05-09T09:21:27.020
    Select CONVERT(varchar(100), GETDATE(), 130):  5 ????? 1440  9:21:35:893AM
    Select CONVERT(varchar(100), GETDATE(), 131):  5/09/1440  9:21:54:957AM

     

    展开全文
  • 指定查询条件3.注释和SQL语句注意事项4.运算符5.字符串模糊查询一. 基本的查询语句我们通过向数据库发送SQL查询语句,数据库里运行SQL语句,将查询结果返回。最基本的查询语句包括两个子句:SELECT子句,FROM子句。...

    70236f7ef41b113400f36d0991fce68f.png

    学习目标

    1.基本的查询语句

    2.指定查询条件

    3.注释和SQL语句注意事项

    4.运算符

    5.字符串模糊查询


    一. 基本的查询语句

    我们通过向数据库发送SQL查询语句,数据库里运行SQL语句,将查询结果返回。

    最基本的查询语句包括两个子句:SELECT子句FROM子句

    子句是SQL语句的组成要素,是五个以关键字作为开始的语句。

    • 从student表中查找姓名,学号两列数据
    SELECT 姓名, 学号 FROM student;

    a1434bff41dce3fe8e152c528873d863.png
    注:查询结果中列的顺序和SELECT子句中列的顺序一致
    • 查询student表里全部列(*)
    SELECT * FROM student;

    14f7387e6da9e5fded655dc211058108.png
    • 删除重复数据:在SELECT子句的列名前添加DISTINCT
    SELECT DISTINCT 姓名 FROM student;

    b398df933722fc4dbb50afdf24e62e86.png
    注:列名不能加单引号,有特殊含义,不是字符串
    SELECT DISTINCT 姓名, 学号 FROM student;

    fc421275fb8e946c2f2645642bee46da.png
    注:联合考虑姓名和学号的重复性
    • 使用AS为列设置别名,别名可以让SELECT语句更加容易理解和操作。
    SELECT 姓名 AS '学生姓名', 学号 AS '学生学号' FROM student;

    1e7981bf664da4b37eede1d0fdd45007.png
    注:中文别名需要使用' '

    二. 指定查询条件

    查询语句通过WHERE子句来指定查找条件:

    SELECT *
    FROM student
    WHERE 姓名 = '猴子'; /* 查询条件的表达式 */

    ef350cc5315eb7166014df2709d3c644.png

    SQL子句的书写顺序和SQL的运行顺序不同

    31696e818c6b1f613f689502f72615b3.png

    SQL运行顺序:SELECT子句最后运行,其他子句按书写顺序运行。


    三. 注释sql语句

    注释能够帮助阅读者更好的理解SQL语句,特别是书写复杂SQL语句。

    单行注释

    -- 查询出全部列
    SELECT * FROM student;

    多行注释

    /*
    查找姓名是猴子学生
    的学号
    */
    SELECT 学号 FROM student WHERE 姓名 = '猴子';

    四. 运算符

    算数运算符

    加法:+

    减法: -

    乘法: *

    除法:/

    SELECT 学号,成绩,
    成绩/100 AS '百分比成绩'
    FROM score;

    0a40297584b08a2244ef832482d2400e.png
    注:含有NULL的运算,结果还是NULL

    比较运算符

    相等:=

    不等于 :<>

    大于 : >

    大于等于: >=

    小于: <

    小于等于: <=

    空值: IS NULL

    -- 数值比较
    SELECT 学号, 成绩
    FROM score
    WHERE 成绩 > 60;

    9a50fe6d33795ee682336f5876899e3b.png
    -- 日期比较
    SELECT 姓名, 出生日期
    FROM student
    WHERE 出生日期 < '1990-01-01';

    cad55a93185c5a8717eede8c598bb8c5.png
    -- 如何查询出 NULL 值?
    SELECT 教师号, 教师姓名
    FROM teacher
    WHERE 教师姓名 IS NULL

    18b5f8163be1268c8cb29368b5c93c04.png

    补充:字符串比较

    '10' > '2'

    逻辑运算符

    NOT:否定某一条件

    AND:并且

    BETWEEN:范围查询

    OR:或者

    IN:OR的简单写法

    NOT(一般不使用)

    SELECT 学号, 成绩
    FROM score
    WHERE NOT 成绩 >= 80;
    
    SELECT 学号, 成绩
    FROM score
    WHERE 成绩 < 80;

    e7518c8e51e59ac6fadeac318755fc37.png
    注:两条语句查询结果一致

    AND

    SELECT 学号, 成绩
    FROM score
    WHERE 成绩>=60 
    AND 成绩<=90;

    7dd0d3d17d1ef694b991ee0e7cc4da6a.png

    BETWEEN

    SELECT 学号, 成绩
    FROM score
    WHERE 成绩 >= 60 
    AND 成绩 <= 90;
    
    SELECT 学号, 成绩
    FROM score
    WHERE 成绩 BETWEEN 60 AND 90;

    224ae14e7e0f0aeb33652ce6ee4f2daf.png
    注:BETWEEN运算符会查找包括两个边界的值

    IN

    SELECT 姓名, 性别
    FROM student
    WHERE 姓名 IN ('猴子', '马云');

    4b013ca22236663b4fd8f32ed28ed06e.png
    SELECT 姓名, 性别
    FROM student
    WHERE 姓名 NOT IN ('猴子', '马云');

    1af31b24928c9b1ff35f318f1507d6f8.png

    五. 字符串模糊查询

    字符串模糊查询:LIKE e.g. 搜索引擎搜索关键词

    %表示任意字符串:

    1.猴%

    -- 查询姓猴的学生名单    
    SELECT *     
    FROM student    
    WHERE 姓名 LIKE '猴%'; 

    3e2819b8a666dd90fedac9d8a7493d59.png

    2.%猴

    -- 查询姓名中最后一个字是聪的学生名单    
    SELECT *     
    FROM student    
    WHERE 姓名 LIKE '%聪';

    8a714e89085e8dc247d710acfbe488f3.png

    3.%猴%

    -- 查询姓名中带猴的学生名单    
    SELECT *     
    FROM student    
    WHERE 姓名 LIKE '%马%';

    a4d73e72b187e9d5daa690b6a8373f43.png

    _一个下划线表示任意1个字符

    -- 查询姓王的学生名单,并且姓名是三个字的
    SELECT * 
    FROM student
    WHERE 姓名 LIKE '王__';

    e6f66740b51dbba75cd0b50d42d03746.png

    ad1c0dcc735bc5b9e44c97b7f1d6618d.png
    展开全文
  • 存储的格式是YY-mm-dd类型时查询:2.Date()函数处理字段作为日期查询条件:3.timestamp()函数来查询:4.查询指定月份的数据记录:5.查询与现在距离一定时间范围内的数据记录: 1.存储的格式是YY-mm-dd类型时查询: ...

    1.存储的格式是YY-mm-dd类型时查询:

    假如表product有字段add_time,它的数据类型为datetime,写sql如下:

    select * from product where add_time = '2019-01-12';
    

    对于这种语句,适合存储的格式是YY-mm-dd类型的;

    2.Date()函数处理字段作为日期查询条件:

    如果你存储的格式是YY-mm-dd H:i:s (2019-01-12 23:23:56)这种格式可以使用DATE()函数用来返回日期条件查询的部分,如下处理:

    select * from product where Date(add_time) = '2019-01-12';
    

    3.timestamp()函数来查询:

    如果按照日期+时间模式(2019-01-12 23:23:56—时间精确到秒)查询数据库,则可以使用timestamp()函数来查询:

    select * from product where timestamp(add_time) = '2019-01-12 23:23:56';
    

    或者查询一个时间范围,可以用:

    select * from product where timestamp(add_time) between '2019-01-12 03:23:56' and '2019-01-12 23:23:56';
    

    4.查询指定月份的数据记录:

    如果你要查询2013年1月份加入的产品:

    select * from product where date(add_time) between '2019-01-01' and '2019-01-31'
    ##你还可以这样写:
    select * from product where Year(add_time) = 2019 and Month(add_time) = 1
    

    5.查询与现在距离一定时间范围内的数据记录:

    1.TO_DAYS()

    如果你要查询最后30天以内的数据,用TO_DAYS()函数转换时间字段进行比较:

    SELECT something FROM table  WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
    

    2.DAYOFWEEK(date)
    返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

    mysql> select DAYOFWEEK('1998-02-03');  
    -> 3
    

    3.WEEKDAY(date)
    返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

    mysql> select WEEKDAY('1997-10-04 22:23:00'); 
    -> 5
    mysql> select WEEKDAY('1997-11-05');
    -> 2
    

    4.DAYOFMONTH(date)
    返回date的月份中日期,在1到31范围内。

    mysql> select DAYOFMONTH('1998-0
    -> 3
    

    5.DAYOFYEAR(date)
    返回date在一年中的日数, 在1到366范围内。

    mysql> select DAYOFYEAR('1998-02-03');
    -> 34
    

    6.MONTH(date)
    返回date的月份,范围1到12。

    mysql> select MONTH('1998-02-03'); 
    -> 2
    

    7.DAYNAME(date)
    返回date的星期名字。

    mysql> select DAYNAME("1998-02-05");
    -> 'Thursday'
    

    8.MONTHNAME(date)

    返回date的月份名字。

    mysql> select MONTHNAME("1998-02-05");
    -> 'February'
    

    9.QUARTER(date)

    返回date一年中的季度,范围1到4。

    mysql> select QUARTER('98-04-01');
    -> 2
    

    10.DATE_FORMAT(date,"%Y-%m-%d")

    返回date 的年月日

    mysql> SELECT DATE_FORMAT(now(),"%Y-%m-%d");
    -> 1998-02-05
    

    具体格式如下

    格式 描述
    %a 缩写星期名
    %b 缩写月名
    %c 月,数值
    %D 带有英文前缀的月中的天
    %d 月的天,数值(00-31)
    %e 月的天,数值(0-31)
    %f 微秒
    %H 小时 (00-23)
    %h 小时 (01-12)
    %I 小时 (01-12)
    %i 分钟,数值(00-59)
    %j 年的天 (001-366)
    %k 小时 (0-23)
    %l 小时 (1-12)
    %M 月名
    %m 月,数值(00-12)
    %p AM 或 PM
    %r 时间,12-小时(hh:mm:ss AM 或 PM)
    %S 秒(00-59)
    %s 秒(00-59)
    %T 时间, 24-小时 (hh:mm:ss)
    %U 周 (00-53) 星期日是一周的第一天
    %u 周 (00-53) 星期一是一周的第一天
    %V 周 (01-53) 星期日是一周的第一天,与 %X 使用
    %v 周 (01-53) 星期一是一周的第一天,与 %x 使用
    %W 星期名
    %w 周的天 (0=星期日, 6=星期六)
    %X 年,其中的星期日是周的第一天,4 位,与 %V 使用
    %x 年,其中的星期一是周的第一天,4 位,与 %v 使用
    %Y 年,4 位
    %y 年,2 位
    展开全文
  • sqlserver 年月日为条件查询记录

    千次阅读 2014-10-23 11:15:46
    今天做一个东西的时候,要查某年,某月的记录,从网上找到了sqlserver中的datepart函数,该函数是用来提取年份,月份,日期的一个函数,带两个参数,第一个为(yy,mm,dd)其中一个,表示年月日,第二个参数为字段...
    今天做一个东西的时候,要查某年,某月的记录,从网上找到了sqlserver中的datepart函数,该函数是用来提取年份,月份,日期的一个函数,带两个参数,第一个为(yy,mm,dd)其中一个,表示年月日,第二个参数为字段名称。
    

    如下:

    select count(*) from 表 别名where datepart(yyy,mm,dd中的一个,别名.字段)=int类型的年月日。

    展开全文
  • oracle的sql语句能最大日期作为查询条件吗?能的话怎么写 打个比方 select * from user r where max(r.date) 大约是这个意思,知道的话麻烦写一条类似的sql语句,别只说思路 谢谢
  • 在数据表中字段A的类型为SmallDatetime,如果要查询词表数据并A字段为查询条件 例:select * from Table_A where A between '2017-04-01 00:00:00' and '2017-04-06 23:59:59' 我们想要的数据是 1号 到 6号的...
  • 像下现一句查询用户表的T-SQL语句: Select * From [tableName] Where EditTime = '2012-06-07' 功能很简单,就是查询[EditTime]的值等于2012年06月07日的记录 但,当把这种东东写到了视图之后,就出事了...
  • 问题: 条件不管选择什么日期表格都显示无结果...更改查询sql语句,将日期以字符串的方式返回到前台 具体操作 由原来的time改成to_char(time,‘yyyy/MM/dd’) time 文本格式化 空间设置返回值类型由日期改为字符串 ...
  • 日期与数字的关系和转换 源数据表 姓名 语文 数学 英语 刘静茹 85 90 90 何冬梅 75 85 71 王清容 70 76 80 程飞娥 64 57 65 朱小林 80 94 89 ...
  • MYSQL /SQL 查询 日期

    2013-09-10 11:03:14
    在开发中,会经常碰到要进行以日期条件进行查询的情况,可以用以下方法: dm.getScrollData(UserOrder.class," TO_DAYS(?)- TO_DAYS(o.createTime)=0 and o.isBook = ? and o.status = ? and o.isAdd = ? ...... ...
  • 转载自品略图书馆... select * from ShopOrder where datediff(week,[ordTime],getdate()-1)=0 //查询当天日期在一周年的数据 select * from ShopOrder where datediff(d...
  • 日期数据在SQL表达式中的应用 在SQL表达式运算符条件中,要查询日期和时间类型的数据,需要在数据值两端加上井字符号(#)表示日期类型。 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”...
  • SSM时间为条件查询

    2019-06-30 20:23:45
    其他与条件查询区不大,时间查询注意点在格式上 至于日期类的前后端传值可以参考:https://blog.csdn.net/AADDDD5/article/details/92421064 1.按年查询 sql语句: 由于按年查询一般都是使用插件的,在前端页面可能...
  • SQL 查询

    2013-07-11 20:57:00
    where 条件中的关系表达式需要遵循以下原则 字符类型及日期类型需要在两端用单引号引起来 字符型大小敏感 日期型格式铭感,DD-MON-RR between and 包括边界 多列排序,首先按照第一列或表达式进行排序...
  • Flink-sql之当前日期

    2020-08-10 09:33:50
    如下看图: 在第一次接触Flinksql的时候,获取当前日期如上图...在Sql的Where条件中做条件查询,如上图; 其结果造成数据的不更新; 原因:FlinkSql函数中,获取当前日期:CURRENT_DATE ,返回当前系统日期; ...
  • 考勤查询统计SQL脚本。

    千次阅读 2018-11-27 08:43:06
    本文主要记录下平时工作中考勤统计中的SQL脚本,便于后续翻阅,同时和大家分享一下,不足的地方还请大牛多多给与点评。  1.首先是查询某员工的考勤记录。可以根据年份,月份,或者时间段查询结果,同时也可以...
  • 日期数据在SQL表达式中的应用 在SQL表达式运算符条件中,要查询日期和时间类型的数据,需要在数据值两端加上井字符号(#)表示日期类型。 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”...
  • 6.2.4 使用别名 6.3 排序与分组 6.3.1 升序排序与降序排序 6.3.2 多列字段排序 6.3.3 使用GROUPBY子句对查询结果进行分组 6.3.4 HAVING子句的应用 6.4 条件查询 6.4.1 WHERE单条件语句查询 6.4.2 运算符查询 6.4.3 ...
  • ORACLE_OCP之SQL_子查询

    2020-12-20 10:44:01
    将子查询放在比较条件的右侧,提高可读性,(但是,子查询可以出现在比较运算符的任何一侧) 将单行运算符用于单行子查询,将多行运算符用于多行子查询 //栗子:找出入职日期大于Davies入职日期的人 SELECT * ...
  • 问题:我有一SQL数据库,...比如我在VB中用SQL语句 Select * From 表1 Where 进货时间>=2000-10-12 ,则返回所有记录,而不论条件日期为那一天,如果用在查询的时候,使用下列语句是正确的: SELECT * FORM 表一 WHE
  • SQL SERVER中如果需要查询出当天、当月和当年的数据,可以通过DATEDIFF函数计算相差时间获取正确的过滤条件。主要思路是通过DATEDIFF函数计算当前日期与数据日期的天数差、月份差和年数差,如果相差值为0,则...
  • 搜索条件中的模式匹配 LIKE 关键字搜索与指定模式匹配的字符串、日期或时间值。LIKE 关键字使用常规表达式包含值所要匹配的模式。模式包含要搜索的字符串,字符串中可包含四种通配符的任意组合。 通配符 含义 % 包含...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 223
精华内容 89
关键字:

以日期条件查询sql