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
    );
    
     
     
根据实际需求选择合适的日期函数,可以灵活处理时间相关的查询和数据操作。
内网穿透工具自托管 vs 云端中转:穿云箭和花生壳优缺点深度分析
内网ip远程控制,借助内网IP实现远程控制的完整指南
远程访问内网IP:打破网络边界的连接艺术
理解Windows系统中的NAT转发功能
内网穿透工具自托管 vs 云端中转:穿云箭和花生壳优缺点分析
手把手配置SSR端口转发:UDP协议支持与高级设置详解
什么是nat123?nat123的核心功能
nat123端口映射:轻松实现外网访问内网
nat123下载:轻松获取内网穿透工具
nat123官网:老牌内网穿透工具