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);