SqlServer中日期函数的汇总
SqlServer中日期函数的汇总
1. sql中的日期格式化
- FORMAT 日期格式化
format 这个函数中需要两个参数,第一个是日期,第二个格式,例如日期 yyyy-MM-dd 只能按照时间类型去转换,毫秒数无法转换 这里的 M 表示的是月份,MM 月份前面会补零,m 表示的是分钟,mm 分钟前面会补零 m 和 M 无论位置都是表示的是月份和分钟数
-- 这里的格式化表达式可以是 yyyy-MM-dd HH:mm:ss select FORMAT(GETDATE(),yyyy-MM-dd) --输出结果:2021-04-21 select FORMAT(GETDATE(),yyyy-MM-dd HH:mm:ss) --输出结果:2021-04-21 14:37:08 select format(getdate(),M-d) -- 输出结果:4-21
- CONVERT 日期格转换成字符串和格式化
convert 函数有三个参数 conver(data_type(length),data_to_be_converted,style) date_type 第一个参数表示的是转换后的类型,可以定义长度 data_to_be_converted 第二个参数是需要转换的类型本身,例如当前日期 getdate 或者 style 第三个参数是按照什么样的格式转换
-- 120 是sqlserver中内置的参数,他代表的格式是:yyyy-MM-dd HH:mm:ss select convert(varchar(100),getDate(),120) -- 输出结果:2021-04-21 14:55:20 select convert(varchar(10),getDate(),23) -- 输出结果:2021-04-21 select convert(varchar(100),getDate(),121) -- 输出结果:2021-04-21 14:58:33.060 select CONVERT(VARCHAR(10),GETDATE(),24) -- 输出结果:14:59:38
常用的日期格式如下:
- CAST 字符串转换成日期
cast ( expression AS data_type) 将一种数据类型的表达式转换为另一种数据类型的表达式。 使用的时候有两个参数 expression:任何可转换为 data_type 的有效表达式; data_type 数据库中的所有支持的数据类型
select cast(2021-04-21 as datetime) -- 输出结果: 2021-04-21 00:00:00 select cast(getdate() as date) -- 输出结果: 2021-04-21
2. dateadd 时间的增加和减少
3. datediff 两个时间之间的差 返回跨两个指定日期的日期和时间边界数。
4. datename 获取指定日期的指定部分的字符串
datename 的作用是获取指定日期的详细数据,比如获取日期,月份,年份,周几
-- 当前日期 select getdate() -- 2021-04-21 16:27:05 select datename(day,getdate()) -- 21 select datename(dayofyear,getdate()) -- 获取一年中的第几天 -- 111 select datename(month,getdate()) -- 04 select datename(year,getdate()) -- 2021 select datename(weekday,getdate()) -- 星期三 select datename(week,getdate()) -- 获取一年中的第几周 -- 17
5. datepart 获取星期的数字
SELECT DATEPART(weekday,20210209) --返回值为2 SELECT DateName(weekday,20210209) --返回值为星期二
6. eomonth 获取月份的最后一天
eomonth 给定一个日期,然后对日期的月份进行计算后获取计算后月份的最后一天
-- 当前日期 select getdate() -- 2021-04-21 17:41:44 select eomonth(getdate(),1) -- 2021-05-31 select eomonth(getdate(),-1) -- 2021-03-31
