【SqlServer】SqlServer常用日期操作

1. 简单查询

说明 查询 sql
日期格式化 SELECT CONVERT(VARCHAR, GETDATE(), 102) AS '102', -- yyyy.mm.dd CONVERT(VARCHAR, GETDATE(), 108) AS '108', -- hh:mi:ss CONVERT(VARCHAR, GETDATE(), 111) AS '111', -- yyyy/mm/dd CONVERT(VARCHAR, GETDATE(), 112) AS '112', -- yyyymmdd CONVERT(VARCHAR, GETDATE(), 23) AS '23', -- yyyy-mm-dd left(CONVERT(VARCHAR, GETDATE(), 23),7) as 'yyyy-mm', -- yyyy-mm CONVERT(VARCHAR, GETDATE(), 120) AS '120', -- yyyy-mm-dd hh:mi:ss CONVERT(VARCHAR, GETDATE(), 121) AS '121' -- yyyy-mm-dd hh:mi:ss.mmm
本月第一天 SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) ;
本月最后一天 SELECT DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE()), 0)); 或者:select EOMONTH(GETDATE());

2. 查询两个日期范围内所有日期列表

sql 复制代码
WITH xrange AS (
    SELECT CAST('2025-07-01' AS DATE) AS curr_day
    UNION ALL
    SELECT DATEADD(DAY, 1, curr_day)
    FROM xrange
    WHERE DATEADD(DAY, 1, curr_day) <= CAST('2025-09-10' AS DATE)
)
SELECT curr_day
FROM xrange
OPTION (MAXRECURSION 0);

3. 查询两个月份范围内所有月份列表

sql 复制代码
WITH xrange AS (
    SELECT CAST(concat('2025-07','-01') AS DATE) AS curr_month
    UNION ALL
    SELECT DATEADD(month, 1, curr_month)
    FROM xrange
    WHERE DATEADD(month, 1, curr_month) <= CAST(concat('2025-09','-10') AS DATE)
)
SELECT left(curr_month,7) as curr_month
FROM xrange
OPTION (MAXRECURSION 0);
相关推荐
观远数据8 小时前
AI+BI时代的数据合规三重门:传输、存储、消费如何一体化管控
大数据·数据分析
@insist1238 小时前
系统集成项目管理工程师-数据分析应用与数据安全
数据分析·软考·系统集成项目管理工程师·软考中项·软件水平考试
倔强的石头1061 天前
SQL Server数据迁移不只是把数据搬过去
sql server·数据迁移
不剪发的Tony老师1 天前
Dash:一款免费开源、本地优先的数据探索与可视化工具
数据分析·数据可视化·dash
davawang1 天前
数据虚拟化技术解析:从概念到实践
数据分析·数据平台·管理工具
数模竞赛Paid answer1 天前
2026年华东杯数学建模C题收益率预测问题解题全过程文档及程序
算法·数学建模·数据分析·华东杯
躺柒1 天前
读数据可视化02数据科学的发展
信息可视化·数据分析·数据可视化·数据科学·大数据分析·图形展示
cc5725026531 天前
大专学生可以考哪些实用证书
数据分析
Francek Chen1 天前
【大数据处理与分析】数据仓库Hive:02 数据湖
大数据·数据仓库·hive·hadoop·分布式·数据分析
躺柒1 天前
读数据可视化01可视化简史
大数据·信息可视化·数据分析·数据可视化·视觉