mysql当前日期,可以灵活处理时间相关的查询和数据操作

时间:2025-09-22 13:05

在 MySQL 中,获取当前日期和时间的函数有多个,根据需求可以选择不同的函数:

1. 获取当前日期(年月日)

sql
SELECT CURDATE();  -- 格式:YYYY-MM-DD
SELECT CURRENT_DATE();  -- 同上,别名
 
示例:
sql
SELECT CURDATE();  -- 结果:2023-10-15(根据当前实际日期)
 

2. 获取当前时间(时分秒)

sql
SELECT CURTIME();  -- 格式:HH:MM:SS
SELECT CURRENT_TIME();  -- 同上,别名
 
示例:
sql
SELECT CURTIME();  -- 结果:14:30:25(根据当前实际时间)
 

3. 获取当前日期和时间(完整时间戳)

sql
SELECT NOW();  -- 格式:YYYY-MM-DD HH:MM:SS
SELECT CURRENT_TIMESTAMP();  -- 同上,别名
SELECT SYSDATE();  -- 类似 NOW(),但返回函数执行时的时间
 
示例:
sql
SELECT NOW();  -- 结果:2023-10-15 14:30:25
 

4. 日期时间的常见用法

  • 插入当前日期到表中
    sql
    INSERT INTO orders (order_date, create_time) 
    VALUES (CURDATE(), NOW());
    
     
     
  • 查询今天的数据
    sql
    SELECT * FROM logs 
    WHERE DATE(create_time) = CURDATE();
    
     
     
  • 计算日期差
    sql
    -- 计算两个日期之间的天数
    SELECT DATEDIFF('2023-12-31', CURDATE()) AS days_remaining;
    
     
     
  • 日期格式化(结合 DATE_FORMAT):
    sql
    -- 格式化为:年-月-日 时:分
    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i') AS formatted_time;
    
     
     

注意事项

  • NOW() 和 SYSDATE() 的区别:NOW() 返回语句开始执行的时间,SYSDATE() 返回函数实际执行的时间(在长事务中可能不同)。
  • 日期函数返回的是 MySQL 服务器的系统时间,而非客户端时间。
  • 可在表设计时用 CURRENT_TIMESTAMP 作为默认值,自动记录插入 / 更新时间:
    sql
    CREATE TABLE test (
        id INT,
        create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );
    
     
     
根据实际需求选择合适的日期函数,可以灵活处理时间相关的查询和数据操作。
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
企业级数据架构:MySQL递归查询在组织权限树中的高级应用实践
企业级MySQL索引优化实战:高并发场景下的索引设计与调优
企业级MySQL时间管理实践:高并发场景下的性能优化与时区解决方案