【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);
相关推荐
YangYang9YangYan15 小时前
高职大数据技术专业学习与发展指南
大数据·人工智能·学习·数据分析
得物技术15 小时前
得物管理类目配置线上化:从业务痛点到技术实现
后端·算法·数据分析
形宙数字21 小时前
【形宙数字】MANGOLD INTERACT 行为观察分析系统-行为观察统计分析-人类行为学研究-行为逻辑
信息可视化·数据分析·行为观察分析系统·行为观察统计分析·人类行为学研究·行为逻辑·形宙数字
fl1768311 天前
基于python的天气预报系统设计和可视化数据分析源码+报告
开发语言·python·数据分析
YangYang9YangYan2 天前
高职新能源汽车技术专业职业发展指南
大数据·人工智能·数据分析·汽车
CoovallyAIHub2 天前
首届AI交易大赛对决!中国模型包揽冠亚军,GPT-5亏损62%垫底
人工智能·google·数据分析
学掌门2 天前
用Python做数据分析之数据表清洗
数据挖掘·数据分析
人大博士的交易之路2 天前
今日行情明日机会——20251104
大数据·数据挖掘·数据分析·缠论·涨停回马枪·道琼斯结构
hweiyu002 天前
Hive 技术深度解析与 P7 数据分析架构师多行业全场景实战课程合集(视频教程)
hive·数据分析
sensen_kiss3 天前
INT303 Big Data Analysis 大数据分析 Pt.3 数据挖掘(Data Mining)
大数据·数据挖掘·数据分析