知识大全 SQL数据操作基础(中级)10

Posted 时间

篇首语:她其实只是想要个拥抱,可你却总是在讲道理。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 SQL数据操作基础(中级)10相关的知识,希望对你有一定的参考价值。

SQL数据操作基础(中级)10  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  操作日期和时间    日期和时间函数对建立一个站点是非常有用的 站点的主人往往对一个表中的数据何时被更新感兴趣 通过日期和时间函数 你可以在毫秒级跟踪一个表的改变     返回当前日期和时间    通过函数GETDATE() 你可以获得当前的日期和时间 例如 语句SELECT GETDATE()返回如下的结果     ……………………………     NOV : AM    ( row(s) affected)    显然 如果你将来使用这个函数 你得到的日期将比这个时间晚 或者梗早     函数GETDATE()可以用来作为DATEDIME()型字段的缺省值 这对插入记录时保存当时的时间是有用的 例如 假设有一个表用来保存你站点上的活动日志 每当有一个访问者访问到你的站点时 就在表中添加一条新记录 记下访问者的名字 活动 和进行访问的时间 要建立一个表 其中的记录包含有当前的日期和时间 可以添加一个DATETIME型字段 指定其缺省值为函数GETDATE()的返回值 就象这样     CREATE TABLE site_log (    username VARCHAR( )     useractivity VARCHAR( )     entrydate DATETIME DEFAULT GETDATE())    转换日期和时间    你也许已经注意到 在上一节的例子中 函数GETDATE()的返回值在显示时只显示到秒 实际上 SQL Sever内部时间可以精确到毫秒级(确切地说 可以精确到 毫秒)     要得到不同格式的日期和时间 你需要使用函数CONVERT() 例如 当下面的这个语句执行时 显示的时间将包括毫秒     SELECT CONVERT(VARCHAR( ) GETDATE() )    注意例子中数字 的使用 这个数字指明了在显示日期和时间时使用哪种日期和时间格式 当这个语句执行时 将显示如下的日期和时间     …………………………………     Nov : : : AM    ( row(s) affected)    在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式 表 显示了所有的格式     表 日期和时间的类型    类型值 标准 输出     Default mon dd yyyy hh:miAM     USA mm/dd/yy     ANSI yy mm dd     British/French dd/mm/yy     German dd mm yy     Italian dd mm yy     dd mon yy     mon dd yy     hh:mi:ss    Default + milliseconds mon dd yyyy   hh:mi:ss:mmmAM(or )     USA mm dd yy     JAPAN yy/mm/dd     ISO yymmdd     Europe Default + milliseconds dd mon yyyy    hh:mi:ss:mmm( h)     hh:mi:ss:mmm( h)    类型 和 总是返回四位的年 对其它类型 要显示世纪 把style值加上 类型 和 返回 小时时钟的时间 类型 和 返回的月份用三位字符表示(用Nov代表November)     对表 中所列的每一种格式 你可以把类型值加上 来显示有世纪的年(例如 年将显示为 年) 例如 要按日本标准显示日期 包括世纪 你应使用如下的语句     SELECT CONVERT(VARCHAR( ) GETDATE() )    在这个例子中 函数CONVERT()把日期格式进行转换 显示为 / /     抽取日期和时间    在许多情况下 你也许只想得到日期和时间的一部分 而不是完整的日期和时间 例如 假设你想列出你的站点目录中每个站点被查询的月份 这时你不希望完整的日期和时间把网页弄乱 为了抽取日期的特定部分 你可以使用函数DATEPART() 象这样     SELECT site_name Site Name     DATEPART(mm site_entrydate) Month Posted FROM site_directory    函数DATEPART()的参数是两个变量 第一个变量指定要抽取日期的哪一部分 第二个变量是实际的数据 在这个例子中 函数DATEPART()抽取月份 因为mm代表月份 下面是这个SELECT 语句的输出结果     Site Name Month Posted    ………………………………………………………………    Yahoo     Microsoft     Magicw     ( row(s) affected)    Month Posted列显示了每个站点被查询的月份 函数DATEPART()的返回值是一个整数 你可以用这个函数抽取日期的各个不同部分 如表 所示     表 日期的各部分及其简写    日期部分 简写 值    year yy     quarter qq     month mm     day of year dy     day dd     week wk     weekday dw (Sunday Saturday)    hour hh     minute mi     second ss     milisecond ms     当你需要进行日期和时间的比较时 使用函数DATEPART()返回整数是有用的 但是 上例中的查询结果( )不是十分易读 要以更易读的格式得到部分的日期和时间 你可以使用函数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    Magicw June    ( 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    Magicw Monday June    ( row(s) affected)    返回日期和时间范围    当你分析表中的数据时 你也许希望取出某个特定时间的数据 你也许对特定的某一天中――比如说 年 月 日――访问者在你站点上的活动感兴趣 要取出这种类型的数据 你也许会试图使用这样的SELECT语句     SELECT * FROM weblog WHERE entrydate= / /     不要这样做 这个SELECT语句不会返回正确的记录――它将只返回日期和时间是 / / : : : AM的记录 换句话说 只有刚好在午夜零点输入的记录才被返回     注意     在本节的讨论中 假设字段entrydate是DATETIME型 而不是SMALLDATETIME型 本节的讨论对SMALLDATETIME型字段也是适用的 不过SMALLDATETIME型字段只能精确到秒     问题是SQL Sever将用完整的日期和时间代替部分日期和时间 例如 当你输入一个日期 但不输入时间时 SQL Sever将加上缺省的时间 AM 当你输入一个时间 但不输入日期时 SQL Sever将加上缺省的日期 Jan     要返回正确的记录 你需要适用日期和时间范围 有不止一种途径可以做到这一点 例如 下面的这个SELECT 语句将能返回正确的记录     SELECT * FROM weblog     WHERE entrydate>= / / AND entrydate< / /     这个语句可以完成任务 因为它选取的是表中的日期和时间大于等于 / / : : : AM并小于 / / : : : AM的记录 换句话说 它将正确地返回 年圣诞节这一天输入的每一条记录     另一种方法是 你可以使用LIKE来返回正确的记录 通过在日期表达式中包含通配符 % 你可以匹配一个特定日期的所有时间 这里有一个例子     SELECT * FROM weblog WHERE entrydate LIKE Dec %     这个语句可以匹配正确的记录 因为通配符 % 代表了任何时间 使用这两种匹配日期和时间范围的函数 你可以选择某个月 某一天 某一年 某个小时 某一分钟 某一秒 甚至某一毫秒内输入的记录 但是 如果你使用LIKE 来匹配秒或毫秒 你首先需要使用函数CONVERT()把日期和时间转换为更精确的格式(参见前面 转换日期和时间 一节)     比较日期和时间    最后 还有两个日期和时间函数对根据日期和时间取出记录是有用的 使用函数DATEADD()和DATEDIFF() 你可以比较日期的早晚 例如 下面的SELECT语句将显示表中的每一条记录已经输入了多少个小时     SELECT entrydate Time Entered     DATEDIFF(hh entrydate GETDATE()) Hours Ago FROM weblog    如 cha138/Article/program/SQLServer/201311/22134

相关参考

知识大全 SQL数据操作基础(中级)8

SQL数据操作基础(中级)8  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  更新记录    要修

知识大全 SQL数据操作基础(初级)3

SQL数据操作基础(初级)3  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  操作字段    通常

知识大全 SQL数据操作基础(初级)1

SQL数据操作基础(初级)1  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为了建立交互站点你需

知识大全 SQL数据操作基础(初级)2

SQL数据操作基础(初级)2  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用ISQL执行SE

知识大全 Sql语言基础教程 sql数据类型[2]

Sql语言基础教程sql数据类型[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 Sql语言基础教程 sql数据类型[1]

Sql语言基础教程sql数据类型[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 SQL的基本操作(1.数据类型)

SQL的基本操作(1.数据类型)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据类型  数据

知识大全 SQL数据库的简单操作

SQL数据库的简单操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一简单查询  简单的Tra

知识大全 oracle数据库中sql基础

  一关系数据库的一些概念    主键的值一般不可以改变    外键指向另一个表或本表的主键或唯一键的字段外键的值一定要和某一主键相同或者为空    数据库对像表视图序列索引同义词程序(进程函数sql

知识大全 数据库技术考试大纲(中级)

  一考试说明  .考试要求  ()掌握计算机基本原理和操作  ()掌握数据库的基本原理和理论  ()掌握一种数据库管理系统(ORACLE或SYBASE或INFORMIX或……)的知识及开发工具的使用