SQLSERVER根据年月自动获取该月第一天及最后一天
时间: 2024-09-28 12:06:49 浏览: 42
SQL SERVER 获取年、季、月、周、日开始时间和结束时间
5星 · 资源好评率100%
在SQL Server中,你可以使用内置的日期函数来获取特定月份的第一天(DATEADD)和最后一天(DATEADD + DATEDIFF)。这里是一个基本的例子:
获取某个月的第一天:
```sql
SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) AS FirstDayOfMonth
```
这个查询会返回当前月的第一天。如果想获取指定年份和月份的第一天,可以先计算年月差,然后添加到指定的开始日期上,例如:
```sql
DECLARE @Year INT = 2023;
DECLARE @Month INT = 2; -- 你想获取2023年2月的第一天
SELECT DATEADD(month, @Month - 1,
DATEADD(year, @Year - YEAR(GETDATE()), '19000101')) AS FirstDayOfMonth
```
其中`19000101`是SQL Server的默认日期表示,它代表公元1900年1月1日。
获取某个月的最后一天:
```sql
SELECT DATEADD(day, DATEDIFF(day, 0, EOMONTH(GETDATE(), 0)), 0) AS LastDayOfMonth
```
EOMONTH函数用于获取指定月份的最后一天。
阅读全文