SQL Server 日期函数:EOMonth、DateFormat、Format、DatePart、DateName

一,月份的最后一天

函数 EOMonth 返回指定日期的最后一天

EOMONTH ( start_date [, month_to_add ] )

1,对于start_date 有两种输入方式,能够转换为Date的字符串类型 和 date 数据类型。

declare @date date
set @date=getdate()

select EOMONTH(@date),EOMONTH('2016-08-06'),EOMONTH('20160806')

2,month_to_add 是int 类型,能够为正整数,负整数和0,默认值是0,如果省略,那么使用默认值0。

复制代码
declare @date date
set @date=getdate()

select EOMONTH(@date) as CurrentMonth_EndDay,
    EOMONTH(@date,1) as NextMonth_EndDay,
    EOMONTH(@date,-1) as LastMonth_EndDay
复制代码

二,月份的第一天

使用DateFromParts 函数,能够从三个正整数(year,month,day)中获取date 类型。

DATEFROMPARTS ( year, month, day )

1,只需要将day 参数设置1,就能获取月份的第一天。

declare @date date
set @date=getdate()

select DATEFROMPARTS(year(@date),month(@date),1) 

三,Format 函数

Format 函数返回值得数据类型是:nvarchar 或 null

FORMAT ( value, format [, culture ] )

参数 format 是日期/时间的显式格式:

  • yyyy-MM-dd:表示年,月,日
  • hh:mm:ss fffffff:表示时,分,秒,毫秒

1,以特定的格式: “yyyy:MMdd hh:mm:ss fffffff” 显式日期/时间

select format(SYSDATETIME(),'yyyy-MM-dd hh:mm:ss fffffff')

2,计算当前月份的第一天

FORMAT(GETDATE(),'yyyyMM01')

四,当前日期是周几

在SQL Server中,通过DataFirst选项设置一周的第一天,number是从1到7,表示一周的7天。

SET DATEFIRST { number | @number_var }

1,可以通过@@datefirst来获取设置的值

set DATEFIRST 1
select @@datefirst

2,使用函数datepart函数获取当天是周几

复制代码
set DATEFIRST 1
--select @@datefirst

--Result : 2
select datepart(WEEKDAY,getutcdate())

set DATEFIRST 2
--select @@datefirst

--Result: 1
select datepart(WEEKDAY,getutcdate())
复制代码

由于设置不同的DateFirst,会导致datepart返回不同的数值,所以必须借助@@DateFirst

复制代码
set DATEFIRST 2
--Result : 2
select Datepart(weekday, getdate()+@@datefirst - 1)

set DATEFIRST 1
--Result : 2
select Datepart(weekday, getdate()+@@datefirst - 1)
复制代码

五,使用DateName获取WeekDay的名字,跟DateFirst的设置没有关系,跟语言设置相关
3.1 查看当前的语言设置

select @@language

3.2 查看系统支持的语言

select alias,name, * 
from sys.syslanguages

3.3 设置语言

--将语言设置为简体中文
set LANGUAGE 'Simplified Chinese'

--将语言设置为英语
set LANGUAGE 'us_english'

3.4 使用DateName获取WeekDay的名字

复制代码
set LANGUAGE 'Simplified Chinese'
--Result:星期二
select  DATENAME(WEEKDAY,getutcdate())

set LANGUAGE 'us_english'
--Result:Tuesday
select  DATENAME(WEEKDAY,getutcdate())
复制代码

参考doc:

FORMAT (Transact-SQL)

DATEPART (Transact-SQL)

DATEFROMPARTS (Transact-SQL)

EOMONTH (Transact-SQL)

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: SQL Server
标签: TSQL, Date, 日期函数







本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/5026165.html,如需转载请自行联系原作者
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值