sql 时间日期函数的总结

作者:袖梨 2022-06-29

①getdate():返回当前系统日期、时间

 代码如下 复制代码
select 当前系统时间=GETDATE()
 
  
 代码如下 复制代码
②dateadd(interval,number,date):返回指定日期加一段时间后的新datetime。
select 倒退一天=DATEADD(day,-1,getdate()), 前进一小时=DATEADD(hour,1,getdate())
 
  ③datediff(interval,date1,date2): 返回跨两个指定时间的差值。
 代码如下 复制代码
DATEDIFF(DAY,'2011-12-5','2012-1-1')       --返回:27
select 天数=datediff(DAY,'2012-01-01','2013-01-01'),月数=datediff(MONTH,'2013-01-01','2012-01-01')
 
  ④datepart(interval,date)和datename(interval,date):都是返回指定日期interval部分的值,不同的是,datepart()返回int类型的整数,
datename返回nvarchar类型的字符串。
 代码如下 复制代码
1 DATEPART(YEAR,'2011-12-5')  -–datepart()返回:2011 (int类型)
2 DATENAME (YEAR,'2011-12-5') -–datename()返回:2011 (nvarchar类型)
3
4 DATEPART(MONTH,'2011-12-5') -–datepart()返回:12 (int类型)
5 DATENAME(MONTH,'2011-12-5') –-datename()返回:December(nvarchar类型)
  
  在此,把不同参数interval罗列出来,我们可以更清晰地看出,datepart()和datename()的区别。
 代码如下 复制代码
1 select '当前时间(datepart)'=GETDATE(), 年=DATEPART(YEAR,GETDATE()),季=DATEPART(QUARTER,GETDATE()),月=DATEPART(Month,GETDATE()),
2 周=DATEPART(WEEK,GETDATE()),周日数=DATEPART(WEEKDAY,GETDATE()),日=DATEPART(DAY,GETDATE()),
3 年日数=DATEPART(DAYOFYEAR,GETDATE()),时=DATEPART(HOUR,GETDATE()),分=DATEPART(MINUTE,GETDATE()),
4 秒=DATEPART(SECOND,GETDATE()),毫秒=DATEPART(MILLISECOND,GETDATE())
5
6 select '当前时间(datename)'=GETDATE(), 年=DATENAME(YEAR,GETDATE()),季=DATENAME(QUARTER,GETDATE()),月=DATENAME(Month,GETDATE()),
7 周=DATENAME(WEEK,GETDATE()),周日数=DATENAME(WEEKDAY,GETDATE()),日=DATENAME(DAY,GETDATE()),
8 年日数=DATENAME(DAYOFYEAR,GETDATE()),时=DATENAME(HOUR,GETDATE()),分=DATENAME(MINUTE,GETDATE()),
9 秒=DATENAME(SECOND,GETDATE()),毫秒=DATENAME(MILLISECOND,GETDATE())
 
  ⑤year(), month(),day():返回指定日期的年、月、日。
 代码如下 复制代码
1 YEAR('2011-12-5')=DATEPART(YEAR,'2011-12-5') --返回:2011
2 MONTH('2011-12-5')= DATEPART(Month,'2011-12-5') --返回:12
3 DAY('2011-12-5')= DATEPART(DAY,'2011-12-5') --返回:5

相关文章

精彩推荐