You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

请求扩展日期查询:在现有年月查询基础上增加当前日期

补充当前日期获取的SQL查询语句

没问题!既然你已经能获取当前年份和月份,要扩展到完整日期其实很简单,不同数据库的函数略有差异,我给你整理了几种常用场景的写法:

  • MySQL/MariaDB
    假设你原本获取年、月的语句用了CURDATE(),那直接新增CURDATE()(仅日期部分)或NOW()(带时间戳的完整日期时间)即可:

    SELECT 
      YEAR(CURDATE()) AS current_year,
      MONTH(CURDATE()) AS current_month,
      CURDATE() AS current_date, -- 仅返回年-月-日格式的日期
      NOW() AS current_datetime -- 返回包含时分秒的完整日期时间
    FROM dual;
    

    如果你的查询是基于业务表的,去掉FROM dual换成你的表名就行。

  • PostgreSQL
    CURRENT_DATE获取当前日期,CURRENT_TIMESTAMP获取带时间的完整日期,配合EXTRACT获取年、月:

    SELECT 
      EXTRACT(YEAR FROM CURRENT_DATE) AS current_year,
      EXTRACT(MONTH FROM CURRENT_DATE) AS current_month,
      CURRENT_DATE AS current_date,
      CURRENT_TIMESTAMP AS current_datetime;
    
  • SQL Server
    借助GETDATE()函数,通过CAST来提取纯日期部分:

    SELECT 
      YEAR(GETDATE()) AS current_year,
      MONTH(GETDATE()) AS current_month,
      CAST(GETDATE() AS DATE) AS current_date, -- 仅日期
      GETDATE() AS current_datetime; -- 日期+时间
    
  • Oracle
    使用SYSDATE作为基础,TRUNC(SYSDATE)可以去掉时间部分只保留日期:

    SELECT 
      EXTRACT(YEAR FROM SYSDATE) AS current_year,
      EXTRACT(MONTH FROM SYSDATE) AS current_month,
      TRUNC(SYSDATE) AS current_date,
      SYSDATE AS current_datetime
    FROM dual;
    

如果需要自定义日期格式(比如YYYY/MM/DD),可以用对应数据库的格式化函数,比如MySQL的DATE_FORMAT(CURDATE(), '%Y/%m/%d')、PostgreSQL的TO_CHAR(CURRENT_DATE, 'YYYY/MM/DD'),按需调整就好。

内容的提问来源于stack exchange,提问作者shawny

火山引擎 最新活动