zoukankan      html  css  js  c++  java
  • 抽取日期和时间

     
    在许多情况下,你也许只想得到日期和时间的一部分,而不是完整的日期和时间。例如,假设你想列出你的站点目录中每个站点被查询的月份。这时你不希望完整的日期和时间把网页弄乱。为了抽取日期的特定部分,你可以使用函数DATEPART(),象这样:

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

    函数DATEPART()的参数是两个变量。第一个变量指定要抽取日期的哪一部分;第二个变量是实际的数据。在这个例子中,函数DATEPART()抽取月份,因为mm代表月份
    返回日期和时间范围
    当你分析表中的数据时,你也许希望取出某个特定时间的数据。你也许对特定的某一天中――比如说2000年12月25日――访问者在你站点上的活动感兴趣。要取出这种类型的数据,你也许会试图使用这样的SELECT语句:

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

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

    注意:
    在本节的讨论中,假设字段entrydate是DATETIME型,而不是SMALLDATETIME型。本节的讨论对SMALLDATETIME型字段也是适用的,不过SMALLDATETIME型字段只能精确到秒。

    问题是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%’

    这个语句可以匹配正确的记录。因为通配符“%”代表了任何时间。

  • 相关阅读:
    【数据结构】Trie(字典树、前缀树)
    【数据结构】优先队列
    【数据结构】堆
    【数据结构】二分搜索树
    【数据结构】哈希表
    【数据结构】链表
    【数据结构】队列
    Python项目案例开发从入门到实战
    Matlab
    Matlab
  • 原文地址:https://www.cnblogs.com/tangge/p/DATEPART.html
Copyright © 2011-2022 走看看