zoukankan      html  css  js  c++  java
  • MySql 学习之路-Date函数

    MySQL中重要的内建函数

    函数 	描述
    NOW() 	返回当前的日期和时间
     1 NOW() 返回当前的日期和时间。
     2 语法
     3 NOW()
     4 
     5 -- 实例
     6 
     7 -- 下面是 SELECT 语句:
     8 SELECT NOW(),CURDATE(),CURTIME()
     9 
    10 结果如下所示:
    11 NOW()     CURDATE()     CURTIME()
    12 2018-06-27 14:25:34     2018-06-27 14:25:34
    13 -- 实例
    14 
    15 -- 下面的 SQL 创建带有日期时间列(OrderDate)的 "Orders" 表:
    16 CREATE TABLE Orders
    17 (
    18 OrderId int NOT NULL,
    19 ProductName varchar(50) NOT NULL,
    20 OrderDate datetime NOT NULL DEFAULT NOW(),
    21 PRIMARY KEY (OrderId)
    22 )
    23 
    24 -- 请注意,OrderDate 列规定 NOW() 作为默认值。作为结果,当您向表中插入行时,当前日期和时间自动插入列中。
    25 
    26 -- 现在,我们想要在 "Orders" 表中插入一条记录:
    27 INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese')
    28 
    29 -- "Orders" 表将如下所示:
    30 OrderId     ProductName     OrderDate
    31 1     Jarlsberg Cheese     2018-06-11 14:36:55
    View Code
    CURDATE() 	返回当前的日期
     1 -- CURDATE() 返回当前的日期。
     2 
     3 -- 实例
     4 
     5 -- 下面是 SELECT 语句:
     6 SELECT NOW(),CURDATE(),CURTIME()
     7 
     8 结果如下所示:
     9 NOW()     CURDATE()     CURTIME()
    10 2018-06-27 14:25:34     2018-06-27 14:25:34
    11 -- 实例
    12 
    13 -- 下面的 SQL 创建带有日期时间列(OrderDate)的 "Orders" 表:
    14 CREATE TABLE Orders
    15 (
    16 OrderId int NOT NULL,
    17 ProductName varchar(50) NOT NULL,
    18 OrderDate datetime NOT NULL DEFAULT CURDATE(),
    19 PRIMARY KEY (OrderId)
    20 )
    21 
    22 -- 请注意,OrderDate 列规定 CURDATE() 作为默认值。作为结果,当您向表中插入行时,当前日期和时间自动插入列中。
    23 
    24 -- 现在,我们想要在 "Orders" 表中插入一条记录:
    25 INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese')
    26 
    27 -- "Orders" 表将如下所示:
    28 OrderId     ProductName     OrderDate
    29 1     Jarlsberg Cheese     2018-06-11 14:36:55
    View Code
    CURTIME() 	返回当前的时间
     1 -- CURTIME() 返回当前的日期。
     2 
     3 -- 实例
     4 
     5 -- 下面是 SELECT 语句:
     6 SELECT NOW(),CURDATE(),CURTIME()
     7 
     8 -- 结果如下所示:
     9 NOW()     CURDATE()     CURTIME()
    10 2018-06-27 14:25:34     2018-06-27 14:25:34
    View Code
    DATE() 	提取日期或日期/时间表达式的日期部分
     1 -- DATE() 函数提取日期或日期/时间表达式的日期部分。
     2 -- 实例
     3 
     4 -- 假设我们有如下的 "Orders" 表:
     5 OrderId     ProductName     OrderDate
     6 1     Jarlsberg Cheese     2018-06-27 14:53:44.657
     7 
     8 -- 下面是 SELECT 语句:
     9 SELECT ProductName, DATE(OrderDate) AS OrderDate
    10 FROM Orders
    11 WHERE OrderId=1
    12 
    13 -- 结果如下所示:
    14 ProductName     OrderDate
    15 Jarlsberg Cheese     2018-06-27
    View Code
    EXTRACT() 	返回日期/时间的单独部分
     1 -- EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
     2 -- 语法
     3 -- EXTRACT(unit FROM date)
     4 
     5 -- date 参数是合法的日期表达式。unit 参数可以是下列的值:
     6 Unit 值
     7 MICROSECOND
     8 SECOND
     9 MINUTE
    10 HOUR
    11 DAY
    12 WEEK
    13 MONTH
    14 QUARTER
    15 YEAR
    16 SECOND_MICROSECOND
    17 MINUTE_MICROSECOND
    18 MINUTE_SECOND
    19 HOUR_MICROSECOND
    20 HOUR_SECOND
    21 HOUR_MINUTE
    22 DAY_MICROSECOND
    23 DAY_SECOND
    24 DAY_MINUTE
    25 DAY_HOUR
    26 YEAR_MONTH
    27 
    28 -- 实例
    29 
    30 -- 假设我们有如下的 "Orders" 表:
    31 OrderId     ProductName     OrderDate
    32 1     Jarlsberg Cheese     2018-06-2715:03:01
    33 
    34 -- 下面是 SELECT 语句:
    35 SELECT EXTRACT(YEAR FROM OrderDate) AS OrderYear,
    36 EXTRACT(MONTH FROM OrderDate) AS OrderMonth,
    37 EXTRACT(DAY FROM OrderDate) AS OrderDay,
    38 FROM Orders
    39 WHERE OrderId=1
    40 
    41 -- 结果如下所示:
    42 OrderYear     OrderMonth     OrderDay
    43 2018     06                        27
    View Code
    DATE_ADD() 	向日期添加指定的时间间隔
     1 -- DATE_ADD() 函数向日期添加指定的时间间隔。
     2 -- 语法
     3 -- DATE_ADD(date,INTERVAL expr type)
     4 
     5 -- date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
     6 
     7 -- type 参数可以是下列值:
     8 Type 值
     9 MICROSECOND
    10 SECOND
    11 MINUTE
    12 HOUR
    13 DAY
    14 WEEK
    15 MONTH
    16 QUARTER
    17 YEAR
    18 SECOND_MICROSECOND
    19 MINUTE_MICROSECOND
    20 MINUTE_SECOND
    21 HOUR_MICROSECOND
    22 HOUR_SECOND
    23 HOUR_MINUTE
    24 DAY_MICROSECOND
    25 DAY_SECOND
    26 DAY_MINUTE
    27 DAY_HOUR
    28 YEAR_MONTH
    29 
    30 -- 实例
    31 
    32 -- 假设我们有如下的 "Orders" 表:
    33 OrderId     ProductName     OrderDate
    34 1     Jarlsberg Cheese     2018-06-27 15:02:47
    35 
    36 -- 现在,我们想要向 "OrderDate" 添加 45 天,这样就可以找到付款日期。
    37 
    38 -- 我们使用下面的 SELECT 语句:
    39 SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 45 DAY) AS OrderPayDate
    40 FROM Orders
    41 
    42 -- 结果:
    43 OrderId     OrderPayDate
    44 1     2018-08-11 15:02:47
    View Code
    DATE_SUB() 	从日期减去指定的时间间隔
     1 DATE_SUB() 函数从日期减去指定的时间间隔。
     2 语法
     3 DATE_SUB(date,INTERVAL expr type)
     4 
     5 date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
     6 
     7 type 参数可以是下列值:
     8 Type 值
     9 MICROSECOND
    10 SECOND
    11 MINUTE
    12 HOUR
    13 DAY
    14 WEEK
    15 MONTH
    16 QUARTER
    17 YEAR
    18 SECOND_MICROSECOND
    19 MINUTE_MICROSECOND
    20 MINUTE_SECOND
    21 HOUR_MICROSECOND
    22 HOUR_SECOND
    23 HOUR_MINUTE
    24 DAY_MICROSECOND
    25 DAY_SECOND
    26 DAY_MINUTE
    27 DAY_HOUR
    28 YEAR_MONTH
    29 
    30 实例
    31 
    32 假设我们有如下的 "Orders" 表:
    33 OrderId     ProductName     OrderDate
    34 1     Jarlsberg Cheese     2018-06-27 15:02:47
    35 
    36 现在,我们想要向 "OrderDate" 减去 5 天。
    37 
    38 我们使用下面的 SELECT 语句:
    39 SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate
    40 FROM Orders
    41 
    42 结果:
    43 OrderId     SubtractDate
    44 1     2018-06-22 15:02:47
    View Code

     DATEDIFF() 返回两个日期之间的天数

    1 DATEDUFF() 返回两个日期之间的天数
    2 实例:
    3 
    4 SELECT DATEDIFF('2018-11-29','2018-11-30') AS DiffDate
    5 
    6 结果:
    7 DiffDate
    8 -1
    View Code
    DATE_FORMAT() 	用不同的格式显示日期/时间
     1 DATE_FORMAT() 用不同的格式显示日期/时间
     2 
     3 实例:
     4 SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p');
     5 # DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
     6 'Jun 27 2018 03:12 PM'
     7 
     8 SELECT DATE_FORMAT(NOW(),'%m-%d-%Y');
     9 # DATE_FORMAT(NOW(),'%m-%d-%Y')
    10 '06-27-2018'
    11 
    12 SELECT DATE_FORMAT(NOW(),'%d %b %y');
    13 # DATE_FORMAT(NOW(),'%d %b %y')
    14 '27 Jun 18'
    15 
    16 SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f');
    17 # DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
    18 '27 Jun 2018 15:15:44:000000'
    19 
    20 可以使用的格式有:
    21 格式     描述
    22 %a     缩写星期名
    23 %b     缩写月名
    24 %c     月,数值
    25 %D     带有英文前缀的月中的天
    26 %d     月的天,数值(00-3127 %e     月的天,数值(0-3128 %f     微秒
    29 %H     小时(00-2330 %h     小时(01-1231 %I     小时(01-1232 %i     分钟,数值(00-5933 %j     年的天(001-36634 %k     小时(0-2335 %l     小时(1-1236 %M     月名
    37 %m     月,数值(00-1238 %p     AM 或 PM
    39 %r     时间,12-小时(hh:mm:ss AM 或 PM)
    40 %S     秒(00-5941 %s     秒(00-5942 %T     时间, 24-小时(hh:mm:ss)
    43 %U     周(00-53)星期日是一周的第一天
    44 %u     周(00-53)星期一是一周的第一天
    45 %V     周(01-53)星期日是一周的第一天,与 %X 使用
    46 %v     周(01-53)星期一是一周的第一天,与 %x 使用
    47 %W     星期名
    48 %w     周的天(0=星期日, 6=星期六)
    49 %X     年,其中的星期日是周的第一天,4 位,与 %V 使用
    50 %x     年,其中的星期一是周的第一天,4 位,与 %v 使用
    51 %Y     年,452 %y     年,2
    View Code

    MySql中存储日期的数据类型

    DATE - 格式:YYYY-MM-DD
    DATETIME - 格式:YYYY-MM-DD HH:MM:SS
    TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
    YEAR - 格式:YYYY 或 YY
    

     总结:日期函数有点乱,其实我觉得记住几个经常用到的就可以了,不一定非要全部记住,必定谁都没有过目不忘的本领,而且也不会出题考试,工作中用到哪个记不住查一下就可以了

  • 相关阅读:
    X264参考手册
    X264码率控制总结
    x264_param_t结构体解释,设置及对应函数位置
    FFmpeg与libx264 x264接口对应关系源代码分析
    x264源代码学习1:概述与架构分析
    X264使用指南
    X264学习1:简介
    PHPMailer 使用 中文乱码
    laravel学习之路5缓存
    laravel学习之路4artisan
  • 原文地址:https://www.cnblogs.com/linuxchao/p/linuxchao-mysql-date.html
Copyright © 2011-2022 走看看