• 售前

  • 售后

热门帖子
入门百科

详解MySql Date函数

[复制链接]
我是一个梦蛋 显示全部楼层 发表于 2021-10-26 12:44:32 |阅读模式 打印 上一主题 下一主题
下面是MySQL中最重要的内建函数
函数  形貌
NOW()   返回当前的日期和时间
  1. NOW() 返回当前的日期和时间。
  2. 语法
  3. NOW()
  4. -- 实例
  5. -- 下面是 SELECT 语句:
  6. SELECT NOW(),CURDATE(),CURTIME()
  7. 结果如下所示:
  8. NOW()   CURDATE()   CURTIME()
  9. 2018-06-27 14:25:34   2018-06-27 14:25:34
  10. -- 实例
  11. -- 下面的 SQL 创建带有日期时间列(OrderDate)的 "Orders" 表:
  12. CREATE TABLE Orders
  13. (
  14. OrderId int NOT NULL,
  15. ProductName varchar(50) NOT NULL,
  16. OrderDate datetime NOT NULL DEFAULT NOW(),
  17. PRIMARY KEY (OrderId)
  18. )
  19. -- 请注意,OrderDate 列规定 NOW() 作为默认值。作为结果,当您向表中插入行时,当前日期和时间自动插入列中。
  20. -- 现在,我们想要在 "Orders" 表中插入一条记录:
  21. INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese')
  22. -- "Orders" 表将如下所示:
  23. OrderId   ProductName   OrderDate
  24. 1   Jarlsberg Cheese   2018-06-11 14:36:55
复制代码
CURDATE()   返回当前的日期
  1. -- CURDATE() 返回当前的日期。
  2. -- 实例
  3. -- 下面是 SELECT 语句:
  4. SELECT NOW(),CURDATE(),CURTIME()
  5. 结果如下所示:
  6. NOW()   CURDATE()   CURTIME()
  7. 2018-06-27 14:25:34   2018-06-27 14:25:34
  8. -- 实例
  9. -- 下面的 SQL 创建带有日期时间列(OrderDate)的 "Orders" 表:
  10. CREATE TABLE Orders
  11. (
  12. OrderId int NOT NULL,
  13. ProductName varchar(50) NOT NULL,
  14. OrderDate datetime NOT NULL DEFAULT CURDATE(),
  15. PRIMARY KEY (OrderId)
  16. )
  17. -- 请注意,OrderDate 列规定 CURDATE() 作为默认值。作为结果,当您向表中插入行时,当前日期和时间自动插入列中。
  18. -- 现在,我们想要在 "Orders" 表中插入一条记录:
  19. INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese')
  20. -- "Orders" 表将如下所示:
  21. OrderId   ProductName   OrderDate
  22. 1   Jarlsberg Cheese   2018-06-11 14:36:55
复制代码
CURTIME()   返回当前的时间
  1. -- CURTIME() 返回当前的日期。
  2. -- 实例
  3. -- 下面是 SELECT 语句:
  4. SELECT NOW(),CURDATE(),CURTIME()
  5. -- 结果如下所示:
  6. NOW()   CURDATE()   CURTIME()
  7. 2018-06-27 14:25:34   2018-06-27 14:25:34
复制代码
DATE()  提取日期或日期/时间表达式的日期部门
  1. -- DATE() 函数提取日期或日期/时间表达式的日期部分。
  2. -- 实例
  3. -- 假设我们有如下的 "Orders" 表:
  4. OrderId   ProductName   OrderDate
  5. 1   Jarlsberg Cheese   2018-06-27 14:53:44.657
  6. -- 下面是 SELECT 语句:
  7. SELECT ProductName, DATE(OrderDate) AS OrderDate
  8. FROM Orders
  9. WHERE OrderId=1
  10. -- 结果如下所示:
  11. ProductName   OrderDate
  12. Jarlsberg Cheese   2018-06-27
复制代码
EXTRACT()   返回日期/时间的单独部门
  1. -- EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
  2. -- 语法
  3. -- EXTRACT(unit FROM date)
  4. -- date 参数是合法的日期表达式。unit 参数可以是下列的值:
  5. Unit 值
  6. MICROSECOND
  7. SECOND
  8. MINUTE
  9. HOUR
  10. DAY
  11. WEEK
  12. MONTH
  13. QUARTER
  14. YEAR
  15. SECOND_MICROSECOND
  16. MINUTE_MICROSECOND
  17. MINUTE_SECOND
  18. HOUR_MICROSECOND
  19. HOUR_SECOND
  20. HOUR_MINUTE
  21. DAY_MICROSECOND
  22. DAY_SECOND
  23. DAY_MINUTE
  24. DAY_HOUR
  25. YEAR_MONTH
  26. -- 实例
  27. -- 假设我们有如下的 "Orders" 表:
  28. OrderId   ProductName   OrderDate
  29. 1   Jarlsberg Cheese   2018-06-2715:03:01
  30. -- 下面是 SELECT 语句:
  31. SELECT EXTRACT(YEAR FROM OrderDate) AS OrderYear,
  32. EXTRACT(MONTH FROM OrderDate) AS OrderMonth,
  33. EXTRACT(DAY FROM OrderDate) AS OrderDay,
  34. FROM Orders
  35. WHERE OrderId=1
  36. -- 结果如下所示:
  37. OrderYear   OrderMonth   OrderDay
  38. 2018   06            27
复制代码
DATE_ADD()  向日期添加指定的时间间隔
  1. -- DATE_ADD() 函数向日期添加指定的时间间隔。
  2. -- 语法
  3. -- DATE_ADD(date,INTERVAL expr type)
  4. -- date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
  5. -- type 参数可以是下列值:
  6. Type 值
  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. -- 假设我们有如下的 "Orders" 表:
  29. OrderId   ProductName   OrderDate
  30. 1   Jarlsberg Cheese   2018-06-27 15:02:47
  31. -- 现在,我们想要向 "OrderDate" 添加 45 天,这样就可以找到付款日期。
  32. -- 我们使用下面的 SELECT 语句:
  33. SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 45 DAY) AS OrderPayDate
  34. FROM Orders
  35. -- 结果:
  36. OrderId   OrderPayDate
  37. 1   2018-08-11 15:02:47
复制代码
DATE_SUB()  从日期减去指定的时间间隔
  1. DATE_SUB() 函数从日期减去指定的时间间隔。
  2. 语法
  3. DATE_SUB(date,INTERVAL expr type)
  4. date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
  5. type 参数可以是下列值:
  6. Type 值
  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. 假设我们有如下的 "Orders" 表:
  29. OrderId   ProductName   OrderDate
  30.   Jarlsberg Cheese   2018-06-27 15:02:47
  31. 现在,我们想要向 "OrderDate" 减去 5 天。
  32. 我们使用下面的 SELECT 语句:
  33. SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate
  34. FROM Orders
  35. 结果:
  36. OrderId   SubtractDate
  37.    2018-06-22 15:02:47
复制代码
 DATEDIFF() 返回两个日期之间的天数
  1. DATEDUFF() 返回两个日期之间的天数
  2. 实例:
  3. SELECT DATEDIFF('2018-11-29','2018-11-30') AS DiffDate
  4. 结果:
  5. DiffDate
  6. -1
复制代码
DATE_FORMAT()   用差异的格式显示日期/时间
  1. DATE_FORMAT() 用不同的格式显示日期/时间
  2. 实例:
  3. SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p');
  4. # DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
  5. 'Jun 27 2018 03:12 PM'
  6. SELECT DATE_FORMAT(NOW(),'%m-%d-%Y');
  7. # DATE_FORMAT(NOW(),'%m-%d-%Y')
  8. '06-27-2018'
  9. SELECT DATE_FORMAT(NOW(),'%d %b %y');
  10. # DATE_FORMAT(NOW(),'%d %b %y')
  11. '27 Jun 18'
  12. SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f');
  13. # DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
  14. '27 Jun 2018 15:15:44:000000'
  15. 可以使用的格式有:
  16. 格式   描述
  17. %a   缩写星期名
  18. %b   缩写月名
  19. %c   月,数值
  20. %D   带有英文前缀的月中的天
  21. %d   月的天,数值(00-31)
  22. %e   月的天,数值(0-31)
  23. %f   微秒
  24. %H   小时(00-23)
  25. %h   小时(01-12)
  26. %I   小时(01-12)
  27. %i   分钟,数值(00-59)
  28. %j   年的天(001-366)
  29. %k   小时(0-23)
  30. %l   小时(1-12)
  31. %M   月名
  32. %m   月,数值(00-12)
  33. %p   AM 或 PM
  34. %r   时间,12-小时(hh:mm:ss AM 或 PM)
  35. %S   秒(00-59)
  36. %s   秒(00-59)
  37. %T   时间, 24-小时(hh:mm:ss)
  38. %U   周(00-53)星期日是一周的第一天
  39. %u   周(00-53)星期一是一周的第一天
  40. %V   周(01-53)星期日是一周的第一天,与 %X 使用
  41. %v   周(01-53)星期一是一周的第一天,与 %x 使用
  42. %W   星期名
  43. %w   周的天(0=星期日, 6=星期六)
  44. %X   年,其中的星期日是周的第一天,4 位,与 %V 使用
  45. %x   年,其中的星期一是周的第一天,4 位,与 %v 使用
  46. %Y   年,4 位
  47. %y   年,2 位
复制代码
下面是数据库中存储日期的数据范例
  1. DATE - 格式:YYYY-MM-DD
  2. DATETIME - 格式:YYYY-MM-DD HH:MM:SS
  3. TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
  4. YEAR - 格式:YYYY 或 YY
复制代码
总结:日期函数有点乱,其实我以为记着几个常常用到的就可以了,不肯定非要全部记着,肯定谁都没有过目不忘的本领,而且也不会出题考试,工作中用到哪个记不住查一下就可以了
以上所述是小编给各人介绍的MySql Date函数,希望对各人有所资助,假如各人有任何疑问请给我留言,小编会及时复兴各人的。在此也非常感谢各人对脚本之家网站的支持!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作