精华内容
下载资源
问答
  • sql 数据库中时间的用法

    千次阅读 2005-10-08 12:11:00
    【动画视频教程】 [Flash教程] [3DMax教程] 【平面设计教程】 [Photoshop教程] [Fireworks教程] 【网站建设教程】 [网站设计教程] [搜索引擎教程] 【操作系统教程】 【考试认证教程】 【程序编写教程】 ...
    久久资讯站
    动画视频教程】  [Flash教程]  [3DMax教程]  
    平面设计教程】  [Photoshop教程]  [Fireworks教程]  
    网站建设教程】  [网站设计教程]  [搜索引擎教程]  
    操作系统教程】  
    考试认证教程】  
    程序编写教程】  [ASP教程]  [JAVA教程]  [C++教程]  [Delphi教程]  [PHP教程]  [VC教程集一]  [VB教程]  [VC教程集二]  [VC教程集三]  [JSP教程]  [程序杂类教程]  
    border="0" name="myad_pop" marginwidth="0" src="/topb.htm" frameborder="0" width="468" scrolling="no" height="20">
         首页 · 教程合集 · 数据库教程 · SQL2000教程 · 新闻

    关于MSSQL Server中DATETIME类型数据的处理

    border="0" name="myad_pop" marginwidth="0" src="http://www.99d.com.cn/banner.htm" frameborder="0" width="300" scrolling="no" height="250">
    返回当前日期和时间
    通过函数GETDATE(),你可以获得当前的日期和时间。函数GETDATE()可以用来作为DATEDIME型字段的缺省值。这对插入记录时保存当时的时间是有用的。要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样:

    CREATE TABLE site_log (
           username VARCHAR(40),
           useractivity VARCHAR(100),
           entrydate DATETIME DEFAULT GETDATE())

    转换日期和时间
    函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。
    要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒:

    SELECT CONVERT(VARCHAR(30),GETDATE(),9)

    注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时,将显示如下的日期和时间:
    Nov 30 1997 3:29:55:170AM
    (1 row(s) affected)

    在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。下表显示了所有的格式。

    日期和时间的类型:
    类型值               标准               输出
       0                 Default           mon dd yyyy hh:miAM
       1                 USA               mm/dd/yy
       2                 ANSI              yy.mm.dd
       3                 British/French    dd/mm/yy
       4                 German            dd.mm.yy
       5                 Italian           dd-mm-yy
       6                 -                 dd mon yy
       7                 -                 mon dd,yy
       8                 -                 hh:mi:ss
       9                        Default + milliseconds--mon dd yyyy
    hh:mi:ss:mmmAM(or )
       10                USA              mm-dd-yy
       11                JAPAN            yy/mm/dd
       12                ISO              yymmdd
       13                Europe           Default + milliseconds--dd mon yyyy
                                           hh:mi:ss:mmm(24h)
       14                 -                hh:mi:ss:mmm(24h)

       类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November).

    对表中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:

    SELECT CONVERT(VARCHAR(30),GETDATE(),111)

        在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30

    抽取日期和时间
    在许多情况下,你也许只想得到日期和时间的一部分,而不是完整的日期和时间。为了抽取日期的特定部分,你可以使用函数DATEPART(),象这样:

    SELECT site_name ‘Site Name’,
    DATEPART(mm,site_entrydate) ‘Month Posted’ FROM site_directory

    函数DATEPART()的参数是两个变量。第一个变量指定要抽取日期的哪一部分;第二个变量是实际的数据。在这个例子中,函数DATEPART()抽取月份,因为mm代表月份。下面是这个SELECT 语句的输出结果:

    Site Name                         Month Posted
    ………………………………………………………………
    Yahoo                              2
    Microsoft                          5
    Magicw3                            5
    (3 row(s) affected)

       Month Posted列显示了每个站点被查询的月份。函数DATEPART()的返回值是一个整数。你可以用这个函数抽取日期的各个不同部分,如下表所示。

    日期的各部分及其简写
    日期部分           简写               值
    year                yy                1753--9999
    quarter             qq                1--4
    month               mm                1--12
    day of year         dy                1--366
    day                 dd                1--31
    week                wk                1--53
    weekday             dw                1--7(Sunday--Saturday)
    hour                hh                0--23
    minute              mi                0--59
    second              ss                0--59
    milisecond          ms                0--999

    当你需要进行日期和时间的比较时,使用函数DATEPART()返回整数是有用的。但是,上例中的查询结果(2,5)不是十分易读。要以更易读的格式得到部分的日期和时间,你可以使用函数DATENAME(),如下例所示:

    SELECT site_name ‘Site Name’
    DATENAME(mm,site_entrydate) ‘Month Posted’
    FROM site_directory

    函数DATENAME()和函数DATEPART()接收同样的参数。但是,它的返回值是一个字符串,而不是一个整数。下面是上例该用DATENAME()得到的结果:

    Site Name                           Month Postec
    ………………………………………………………………….
    Yahoo                               February
    Microsoft                           June
    Magicw3                             June
    (3 row(s) affected)

    你也可以用函数DATENAE()来抽取一个星期中的某一天。下面的这个例子同时抽取一周中的某一天和日期中的月份:

    SELECT site_name ‘Site Name’,
    DATENAME(dw,site_entrydate)+ ‘-’ + DATENAME(mm,site_entrydate)
             ‘Day and Month Posted’ FORM  site_directory

    这个例子执行时,将返回如下的结果:

    Site Name                       Day and Month Posted
    ………………………………………………………………………
    Yahoo                           Friday - February
    Microsoft                       Tuesday - June
    Magicw3                         Monday - June
    (3 row(s) affected)

    返回日期和时间范围
    当你分析表中的数据时,你也许希望取出某个特定时间的数据。你也许对特定的某一天中――比如说2000年12月25日――访问者在你站点上的活动感兴趣。要取出这种类型的数据,你也许会试图使用这样的SELECT语句:

    SELECT * FROM weblog WHERE entrydate="12/25/20000"

    不要这样做。这个SELECT语句不会返回正确的记录――它将只返回日期和时间是12/25/2000 12:00:00:000AM的记录。换句话说,只有刚好在午夜零点输入的记录才被返回。

    问题是SQL Sever将用完整的日期和时间代替部分日期和时间。例如,当你输入一个日期,但不输入时间时,SQL Sever将加上缺省的时间“12:00:00:000AM”。当你输入一个时间,但不输入日期时,SQL Sever将加上缺省的日期“Jan 1 1900”。
    要返回正确的记录,你需要适用日期和时间范围。有不止一种途径可以做到这一点。例如,下面的这个SELECT 语句将能返回正确的记录:

    SELECT * FROM weblog
    WHERE  entrydate>=”12/25/2000” AND entrydate<”12/26/2000”

    这个语句可以完成任务,因为它选取的是表中的日期和时间大于等于12/25/2000 12:00:00:000AM并小于12/26/2000 12:00:00:000AM的记录。换句话说,它将正确地返回2000年圣诞节这一天输入的每一条记录。
    另一种方法是,你可以使用LIKE来返回正确的记录。通过在日期表达式中包含通配符“%”,你可以匹配一个特定日期的所有时间。这里有一个例子:

    SELECT * FROM weblog WHERE entrydate LIKE ‘Dec 25 2000%’

    这个语句可以匹配正确的记录。因为通配符“%”代表了任何时间。
    使用这两种匹配日期和时间范围的函数,你可以选择某个月,某一天,某一年,某个小时,某一分钟,某一秒,甚至某一毫秒内输入的记录。但是,如果你使用LIKE 来匹配秒或毫秒,你首先需要使用函数CONVERT()把日期和时间转换为更精确的格式(参见前面“转换日期和时间”一节)。

    比较日期和时间
    最后,还有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD()和DATEDIFF(),你可以比较日期的早晚。例如,下面的SELECT语句将显示表中的每一条记录已经输入了多少个小时:

    SELECT entrydate ‘Time Entered’
    DATEDIFF(hh,entrydate,GETDATE()) ‘Hours Ago’ FROM weblog

    如果当前时间是2000年11月30号下午6点15分,则会返回如下的结果:

    Time Entered                Hours Ago
    …………………………………………………..
    Dec 30 2000  4:09PM          2
    Dec 30 2000  4:13PM          2
    Dec 1 2000  4:09PM           698
    (3 row(s) affected)

    函数DADEDIFF()的参数是三个变量。第个变量指定日期的某一部分。在这个例子中,是按小时对日期进行比较,(要了解日期各部分的详细内容,请参考表11.2)在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数,较早的时间应该先给。
    函数DATEADD()把两个日期相加。当你需要计算截止日期这一类的数据时,这个函数是有用处的。假如你要查询一个月前注册用户的记录,你可以使用如下的SELECT语句:

    SELECT username ‘User Name’,
    DATEADD(mm,1,firstvisit_date) ‘Registration Expires’
    FROM registration_table

    函数DATEADD()的参数有三个变量。第一个变量代表日期的某一部分,这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期,在这个例子中,日期是取自DATETIME型字段firstvisit_date.假设当前日期是June 30,2000,这个语句将返回如下的内容:

    User Name                         Registration Expires
    ……………………………………………………………………………
    Bill Gates                        Jul 30 2000  4:09PM
    President Clinton                 Jul 30 2000  4:13PM
    William Shakespeare               Jul 1 2000  4:09PM
    (3 row(s) affected)

    注意:
    使用函数DATEADD()把一个日期加上一个月,它并不加上30天。这个函数只简单地把月份值加1。

    border="0" name="WoWShell" marginwidth="1" marginheight="1" src="http://www.99d.com.cn/gbanner72890.htm" frameborder="0" width="728" scrolling="no" height="90">
     
    教程中心
    论文中心
    新闻中心
    返回首页
    返回顶部

    【久久魔兽世界专题网】
    【E库素材】模版|教程
    【V健康娱乐网】
    【留学移民资讯网】
     
     
    border="0" name="myad_pop" marginwidth="0" src="http://www.99d.com.cn/bannersearch1.htm" frameborder="0" width="568" scrolling="no" height="60">
     
    Copyright © 2004-2005 99d.com.cn. 久久资讯站 All Rights Reserved   ICP:蜀ICP备05015578号<script src="http://www.tong123.com/link/count.php?id=9483" type="text/javascript"> </script>
    展开全文
  • 数据库中having用法

    万次阅读 2018-07-27 16:08:27
    having经常与group by和聚合函数(COUNT, SUM, AVG, MIN, or MAX)一起使用,用来过滤由GROUP BY语句返回记录集。 聚合函数通过作用于一组数据而只返回一个单个值,因此,在SELECT语句出现元素要么为一个聚合...

    having经常与group by和聚合函数(COUNT, SUM, AVG, MIN, or MAX)一起使用,用来过滤由GROUP BY语句返回的记录集。

    聚合函数通过作用于一组数据而只返回一个单个值,因此,在SELECT语句中出现的元素要么为一个聚合函数的输入值,要么为GROUP BY语句的参数,否则会出错。

    HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。

    语法:

    SELECT column1, column2, ... column_n, aggregate_function (expression)
    FROM tables
    WHERE predicates
    GROUP BY column1, column2, ... column_n
    HAVING condition1 ... condition_n;

    同样使用本文中的学生表格,如果想查询平均分高于80分的学生记录可以这样写:

    SELECT id, COUNT(course) as numcourse, AVG(score) as avgscore

    FROM student

    GROUP BY id

    HAVING AVG(score)>=80;

    在这里,如果用WHERE代替HAVING就会出错//where 的地方用到的数据是一组数据,不能是一个数

     

     

    展开全文
  • #----------------------------##例子## 调用DLL 及连接数据库# 2006 草莓#----------------------------# 申明 extdll.dll 两个函数 .extern int Min(int x,int y);extern int Max(int x,int y);static z;# 初...
    #----------------------------
    #
    #例子
    #
    # 调用DLL 及连接数据库
    # 2006 草莓
    #----------------------------
    # 申明 extdll.dll 的两个函数 .
    extern int Min(int x,int y);
    extern int Max(int x,int y);
    static z;

    # 初始化extdll.dll.
      function init_dll(lib_path)
      {
            load_dll (lib_path & "\\extdll.dll");
        return(E_OK);
      }
    # 加载 extdll.dll
      init_dll("g:\\out");
    # 调用Dll方法l  
      z = Min(3,5);
      pause(z);
    # 释放 extdll.dll
      unload_dll("g:\\out\\extdll.dll");

    # 建立数据库连接
      db_connect("query1","DSN=pw");
    # 执行查询
      db_execute_query ("query1","SELECT * FROM AS_folders",record_number);
      val = db_get_field_value("query1","#1","#2");
      pause(val);
    # 获取行
      db_get_row("query1",5,row_content);
      #split(row_content, line_arr, "\t");
      pause(row_content);
    # 获取字段
      db_get_headers ("query1",field_num,headers);
      pause(field_num);
      pause(headers);
    #写查询记录到文本  
    db_write_records("query1","G:\\query1.txt",TRUE, NO_LIMIT);
    # 比较文件
      file_compare("g:\\w.txt","g:\\w1.txt","save");




    本文转自 fish_yy 51CTO博客,原文链接:http://blog.51cto.com/tester2test/137378,如需转载请自行联系原作者
    展开全文
  • 数据库group by用法

    2019-06-05 20:25:15
    group by是对表每一列数据分类集合,例如一个表有一个列名为a一列,这一列有1,1,2,2,3这五个数据,在使用group by a之后,返回值应该使1、2、3, group by 经常与min,max,avg一起用。 通常我们会...

    group by是对表中每一列数据的分类的集合,例如一个表中有一个列名为a的一列,这一列中有1,1,2,2,3这五个数据,在使用group by a之后,返回的值应该使1、2、3,
    group by 经常与min,max,avg一起用。
    通常我们会在group by后面加上having ,having的意思是对集合中的每一项进行限制,比如group by a having sum(a)>3;返回的应该是2

    展开全文
  • 分组查询 group by 字段名,字段名 having 1.where后面只能写普通字段条件,不能写聚合函数条件 2.having后面可以写普通字段条件,但是不建议这么做,...查询emp表工资最高员工信息 select max(sal) from emp...
  • SQL中MAX()和MIN()的用法

    万次阅读 多人点赞 2018-02-03 21:36:33
    在SQL数据库中,最大/最小值函数—MAX()/MIN()是经常要用到,下面就将为您分别介绍MAX()函数和MIN()函数使用,供您参考,希望对您学习SQL数据库能有些帮助。 当需要了解一列中最大值时,可以使用MAX()函数;...
  • count(*)表示计算总行数,括号写星与列名,结果是相同 查询学生总数 select count(*) from students;   max(列)表示求此列最大值 查询女生编号最大值 select max(id) from students where gender=0...
  • 聚合函数:Aggregate 函数计算从列取得值,返回一个单一...count(distinct 字段名):返回指定列不同值数目,该用法无法用于 Microsoft Access; count(*):返回表总记录数。 MAX():返回最大值,数值字符均
  • group by常规用法是配合聚合函数,利用分组信息进行统计,常见是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤。 假设现有数据库表如下:  表user_info,id主键,user_id唯一键 CREATE ...
  • 聚合函数:aggregete函数计算从列取得值,返回一个单一值 ...count( distinct 字段名):返回指定列不同值数目,该用法无法用于 Microsoft Access; count( *):返回表总记录数。 MAX
  • class Person(models.Model): G=(('chen','jian'),('hong','yi'),('rt','ju')) gender=models.CharField(max_length=20,choices=G) ...第二个值是在admin下拉列表显示。 >>> p=Perso...
  • /* 建表: dept: deptno(primary key),dname,loc emp: ...1 列出emp表各部门部门号,最高工资,最低工资 select max(sal) as 最高工资,min(sal) as 最低工资,deptno from emp group by ...
  • 索引是存放在模式(schema)中的一个数据库对象,索引作用就是提高对表检索查询速度, 索引是通过快速访问方法来进行快速定位数据,从而减少了对磁盘读写操作。 索引是数据库的一个对象,它不能独立存在,...
  • dj_database_url.config方法返回Django数据库连接字典,其中填充了URL指定所有数据。 还有一个conn_max_age参数可以轻松启用Django连接池。 如果您不想使用环境变量,则可以直接将URL传递给dj_database_url....
  • 在MySQL,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计常见的用法。但是在具体生成id的时候,我们的操作顺序一般是:先在主表插入记录,然后...
  • 比如我需要从数据库中获取80w条数据,再做一系列后续处理,这个时候,用单进程?你可以等到明年今天了。所以应该使用pcntl函数了。 假设我想要启动20个进程,将1-80w数据分成20份来做,主进程等待所有子进程都...
  • SQL 函数的用法

    2015-03-07 11:20:08
    既然数据库中有许多资料都是已数字型态存在,一个很重要用途就是要能够对这些数字做一些运算,例如将它们总合起来,或是找出它们平均值。SQL 有提供一些这一类函数。它们是:   AVG (平均)COUNT ...
  • group by的用法

    2011-01-12 22:23:01
    group by 分组通用数据库具有基于表特定列对数据进行分析能力。 可按照在 GROUP BY 子句定义组对行进行分组。以其最简单形式,组由称为分组列列组成。 SELECT 子句中的列名必须为分组列或列函数。列函数...
  • Mysql数据库学习Day4

    2019-04-01 21:35:25
    mysql数据库高级查询 1 分组函数 分组函数是对表一组记录进行操作,每组只返回一个结果,即首先要对表记录进行分组,然后再进行操作汇总,每组返回一个结果,分组时可能是整个表分为...count()函数一些用法 ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 132
精华内容 52
关键字:

数据库中max的用法