一、常用格式转换
select convert(varchar(100), getdate(), 8): 10:57:46
select convert(varchar(100), getdate(), 14): 10:57:46:967
select convert(varchar(100), getdate(), 20): 2020-05-16 10:57:47
select convert(varchar(100), getdate(), 21): 2020-05-16 10:57:47.157
select convert(varchar(100), getdate(), 23): 2020-05-16
select convert(varchar(100), getdate(), 24): 10:57:47
select convert(varchar(100), getdate(), 25): 2020-05-16 10:57:47.250
select convert(varchar(100), getdate(), 102): 2020.05.16
select convert(varchar(100), getdate(), 108): 10:57:49
select convert(varchar(100), getdate(), 111): 2020/05/16
select convert(varchar(100), getdate(), 112): 20200516
select convert(varchar(100), getdate(), 120): 2020-05-16 10:57:49
select convert(varchar(100), getdate(), 121): 2020-05-16 10:57:49.700
二、函数
sql server中的日期与时间函数
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2020-10-15') --返回:2020-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2020-09-01','2020-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整数。
select datepart(month, '2020-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
select datename(weekday, '2020-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下
select 当前日期=convert(varchar(10),getdate(),120)
当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2020-10-15')
select 本年第多少周=datename(week,'2020-10-15')
今天是周几=datename(weekday,'2020-10-15')
7. 时间格式:datename='2022年4月第1周',...,'2022年10月第4周',
获取月份:replace(substring(datetime,6,2),'月','')
获取周次:replace(right(datetime,3),'周','')
三、常用时间转换
--本周第一天
select dateadd(week, datediff(week, 0, getdate()), 0);
--本周最后一天
select dateadd(week, datediff(week, 0, getdate()), 6);
--上周第一天
select dateadd(week, datediff(week, 0, getdate())-1, 0);
--上周最后一天
select dateadd(week, datediff(week, 0, getdate())-1, 6);
--本月第一天
select dateadd(month, datediff(month, 0, getdate()), 0);
--本月最后一天
select dateadd(month, datediff(month, -1, getdate()), -1);
--上月第一天
select dateadd(month, datediff(month, 0, getdate())-1, 0)
--上月最后一天
select dateadd(month, datediff(month, -1, getdate())-1, -1)
--本季第一天
select dateadd(quarter , datediff(quarter ,0, getdate()), 0);
--本季最后一天
select dateadd(quarter , datediff(quarter , -1, getdate()), -1);
--上季第一天
select dateadd(quarter , datediff(quarter ,0, getdate())-1, 0);
--上季最后一天
select dateadd(quarter , datediff(quarter , -1, getdate())-1, -1);
--本年第一天
select dateadd(year, datediff(year, 0, getdate()), 0);
--本年最后一天
select dateadd(year, datediff(year, -1, getdate()), -1);
--上年第一天
select dateadd(year, datediff(year, 0, getdate()), 0);
--上年最后一天
select dateadd(year, datediff(year, 0, getdate()), -1);
--根据当前时间获取第几季度 202302表示2023年第2季度
select concat( year(getdate()), '0', (month(getdate())+2)/3 )
发表评论