• SQL基本操作——日期函数


    SQL日期:当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。

    SQL Server 中最重要的内建日期函数:GETDATE() 、DATEPART()、DATEADD()、DATEDIFF()、CONVERT()

    1、GETDATE() 函数从 SQL Server 返回当前的时间和日期。

    --基本使用
    SELECT GETDATE() AS CurrentDateTime
    --创建带有日期时间列 (OrderDate) 的 "Orders" 表
    CREATE TABLE Orders 
    (
    OrderId int NOT NULL PRIMARY KEY,
    ProductName varchar(50) NOT NULL,
    OrderDate datetime NOT NULL DEFAULT GETDATE()
    )

    请注意,OrderDate 把 GETDATE() 规定为默认值。结果是,当您在表中插入新行时,当前日期和时间自动插入列中。现在,我们希望在 "Orders" 表中插入一条记录:

    INSERT INTO Orders (ProductName) VALUES ('Computer')

    结果:

    OrderId ProductName OrderDate
    1 Computer 2008-12-29 16:25:46.635

    2、DATEPART() 函数返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

    语法:

    DATEPART(datepart,date)

    date 参数是合法的日期表达式。datepart 参数可以是下列的值:

    假设我们有下面这个 "Orders" 表:

    OrderId ProductName OrderDate
    1 Computer 2008-12-29 16:25:46.635

    我们使用如下 SELECT 语句:

    SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
    DATEPART(mm,OrderDate) AS OrderMonth,
    DATEPART(dd,OrderDate) AS OrderDay
    FROM Orders
    WHERE OrderId=1

    结果:

    OrderYear OrderMonth OrderDay
    2008 12 29

    3、DATEADD() 函数在日期中添加或减去指定的时间间隔。

    语法:

    DATEADD(datepart,number,date)

    date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。datepart 参数可以是上图中的值。

    我们利用上面的 "Orders" 表。现在,我们希望向 "OrderDate" 添加 2 天,这样就可以找到付款日期。我们使用如下 SELECT 语句:

    SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate
    FROM Orders

    结果:

    OrderId OrderPayDate
    1 2008-12-31 16:25:46.635

    4、DATEDIFF() 函数返回两个日期之间的时间。

    语法:

    DATEDIFF(datepart,startdate,enddate)

    startdate 和 enddate 参数是合法的日期表达式。datepart 参数可以是上图中的值。使用如下 SELECT 语句:

    SELECT DATEDIFF(hh,'2008-12-29','2008-12-30') AS DiffDate

    结果:

    DiffDate
    24

    5、CONVERT() 函数是把日期转换为新数据类型的通用函数。具体可以看上一篇文章

    参考:SQL Date 函数

  • 相关阅读:
    maven 的 oracle的Missing artifact com.oracle:******:jar:11.2.0.2.0
    [CF 191C]Fools and Roads[LCA Tarjan算法][LCA 与 RMQ问题的转化][LCA ST算法]
    公司估值(贴现现金流量法DCF)
    Shell编程学习---第五篇:Shell的输入和输出
    S3C2410 实验三——块拷贝、字拷贝(寄存器的理解)
    模板方法模式实现组合查询
    关于方程x^2+y^2=p (p为素数)的解问题
    IOS登陆+注册+抽奖+排行榜
    用PersonalRank实现基于图的推荐算法
    Redis3.0--集群安装部署
  • 原文地址:https://www.cnblogs.com/wuqiuxue/p/7677712.html
Copyright © 2020-2023  润新知