MySQL数据库的日期函数与时间函数

以下的文章主要讲述的是MySQL数据库的日期函数与时间函数(MySQL 5.X)的实际应用的经验总结,MySQL日期函数与时间函数在实际应用中出现的频率还是很大的,以下的文章就是对这两个函数的详细描述。

MySQL 数据库获得当前日期时间 函数:

1.1 获得当前日期+时间(date + time)函数:now()

 

  1. mysql> select now();  
  2. +---------------------+  
  3. | now() |  
  4. +---------------------+  
  5. | 2008-08-08 22:20:46 |  
  6. +---------------------+  

 

除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

 

  1. current_timestamp()  
  2. ,current_timestamp  
  3. ,localtime()  
  4. ,localtime  
  5. ,localtimestamp -- (v4.0.6)  
  6. ,localtimestamp() -- (v4.0.6) 

这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

1.2 获得当前日期+时间(date + time)函数:sysdate()

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了:

 

  1. mysql> select now(), sleep(3), now();  
  2. +---------------------+----------+---------------------+  
  3. | now() | sleep(3) | now() |  
  4. +---------------------+----------+---------------------+  
  5. | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 |  
  6. +---------------------+----------+---------------------+mysql> select sysdate(), sleep(3), sysdate();  
  7. +---------------------+----------+---------------------+  
  8. | sysdate() | sleep(3) | sysdate() |  
  9. +---------------------+----------+---------------------+  
  10. | 2008-08-08 22:28:41 | 0 | 2008-08-08 22:28:44 |  
  11. +---------------------+----------+---------------------+  

可以看到,虽然 中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。MySQL 数据库Manual 中是这样描述 sysdate() 的:Return the time at which the function executes。

sysdate() 日期时间函数,一般情况下很少用到。

2. 获得当前日期(date)函数:curdate()

 

  1. mysql> select curdate();  
  2. +------------+  
  3. | curdate() |  
  4. +------------+  
  5. | 2008-08-08 |  
  6. +------------+  

 

其中,下面的两个日期函数等同于 curdate():

current_date()
,current_date3. 获得当前时间(time)函数:curtime()

 

  1. mysql> select curtime();  
  2. +-----------+  
  3. | curtime() |  
  4. +-----------+  
  5. | 22:41:30 |  

+———–+其中,下面的两个时间函数等同于 curtime():

current_time()

,current_time4. 获得当前 UTC 日期时间函数:

  1. utc_date(), utc_time(), utc_timestamp()  
  2. mysql> select utc_timestamp(), utc_date(), utc_time(), now()  
  3. +---------------------+------------+------------+---------------------+  
  4. | utc_timestamp() | utc_date() | utc_time() | now() |  
  5. +---------------------+------------+------------+---------------------+  
  6. | 2008-08-08 14:47:11 | 2008-08-08 | 14:47:11 | 2008-08-08 22:47:11 |  
  7. +---------------------+------------+------------+---------------------+  

 

因 为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候,非常有用。

二、MySQL数据库 日期时间 Extract(选取) 函数。

1. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒

 

  1. set @dt = '2008-09-10 07:15:30.123456';  
  2. select date(@dt); -- 2008-09-10  
  3. select time(@dt); -- 07:15:30.123456  
  4. select year(@dt); -- 2008  
  5. select quarter(@dt); -- 3  
  6. select month(@dt); -- 9  
  7. select week(@dt); -- 36  
  8. select day(@dt); -- 10  
  9. select hour(@dt); -- 7  
  10. select minute(@dt); -- 15  
  11. select second(@dt); -- 30  
  12. select microsecond(@dt);  

 

1234562. MySQL Extract() 函数,可以上面实现类似的功能:

 

  1. set @dt = '2008-09-10 07:15:30.123456';  
  2.  
  3. select extract(year from @dt); -- 2008  
  4. select extract(quarter from @dt); -- 3  
  5. select extract(month from @dt); -- 9  
  6. select extract(week from @dt); -- 36  
  7. select extract(day from @dt); -- 10  
  8. select extract(hour from @dt); -- 7  
  9. select extract(minute from @dt); -- 15  
  10. select extract(second from @dt); -- 30  
  11. select extract(microsecond from @dt); -- 123456select extract(year_month from @dt); -- 200809  
  12. select extract(day_hour from @dt); -- 1007  
  13. select extract(day_minute from @dt); -- 100715  
  14. select extract(day_second from @dt); -- 10071530  
  15. select extract(day_microsecond from @dt); -- 10071530123456  
  16. select extract(hour_minute from @dt); -- 715  
  17. select extract(hour_second from @dt); -- 71530  
  18. select extract(hour_microsecond from @dt); -- 71530123456  
  19. select extract(minute_second from @dt); -- 1530  
  20. select extract(minute_microsecond from @dt); -- 1530123456  
  21. select extract(second_microsecond from @dt);  

30123456MySQL Extract() 函数除了没有date(),time() 的功能外,其他功能一应具全。并且还具有选取‘day_microsecond’ 等功能。注意这里不是只选取 day 和 microsecond,而是从日期的 day 部分一直选取到 microsecond 部分。够强悍的吧!

以上的相关内容就是对MySQL数据库的日期函数、时间函数(MySQL 5.X)的部分内容介绍,望你能有所收获。

【编辑推荐】

  1. MySQL 4.1 数据转换的指导
  2. 配置MySQL与卸载MySQL实操
  3. 图解MySQL数据库安装与实际操作
  4. 卸载MySQL数据库的实现需要哪些项目?
  5. MySQL数据库进行备份在Linux异构网络里

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/262736.html<

(0)
运维的头像运维
上一篇2025-05-04 05:57
下一篇 2025-05-04 05:59

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注