sqlserver 日期转换年龄
时间: 2024-08-26 09:01:14 浏览: 50
Sqlserver 常用日期时间函数
在SQL Server中,计算两个日期之间的年龄通常涉及到从当前日期减去出生日期或某个特定日期,然后将结果转换成年份。这可以通过以下几种方式实现:
1. **DATEDIFF函数**:这个函数返回两个日期之间的差异,单位可以是天、月或年。例如,`DATEDIFF(YEAR, '1980-01-01', GETDATE())`会给出从1980年到今天的岁数。
```sql
DECLARE @BirthDate DATE = '1990-05-20';
SELECT DATEDIFF(YEAR, @BirthDate, GETDATE()) AS Age;
```
2. **T-SQL用户定义函数**: 如果需要更复杂的计算(如考虑闰年),你可以编写自定义函数。
```sql
CREATE FUNCTION dbo.CalculateAge(@BirthDate DATE)
RETURNS INT
BEGIN
DECLARE @YearsElapsed INT = DATEDIFF(YEAR, @BirthDate, GETDATE());
RETURN CASE WHEN MONTH(@BirthDate) > MONTH(GETDATE())
OR (MONTH(@BirthDate) = MONTH(GETDATE())
AND DAY(@BirthDate) >= DAY(GETDATE()))
THEN @YearsElapsed - 1 ELSE @YearsElapsed END;
END;
```
阅读全文