mssql中获取指定日期所在月份的第一天的代码

 更新时间:2011年09月12日 14:46:38   作者:  
mssql中获取指定日期所在月份的第一天的代码,需要的朋友可以参考下。
获取指定日期月份的第一天,你可以使用DATEADD函数,减去指定日期的月份过去了的天数,即可。
复制代码 代码如下:

CREATE FUNCTION [dbo].[udf_FirstDayOfMonth]
(
@Date DATE
)
RETURNS DATETIME
AS
BEGIN
RETURN CAST(DATEADD(day,1 - DAY(@Date), @Date) AS DATETIME)
END

或者,用DATEDIFF计算指定日期与日期开始之时,相隔几个月,然后再DATEADD加上这个相隔月份数,从零开始。
复制代码 代码如下:

CREATE FUNCTION [dbo].[udf_FirstDayOfMonth]
(
@Date DATE
)
RETURNS DATETIME
AS
BEGIN
RETURN DATEADD(MONTH,DATEDIFF(MONTH,0,@Date),0)
END

或者,从指定的日期取出年或月,然后与01组合为日期,即得到指定日期当月天第一天。
复制代码 代码如下:

CREATE FUNCTION [dbo].[udf_FirstDayOfMonth]
(
@Date DATE
)
RETURNS DATETIME
AS
BEGIN
DECLARE @y NVARCHAR(4) = CAST(YEAR(@Date) AS NVARCHAR(4))
DECLARE @m NVARCHAR(2) = CAST(MONTH(@Date) AS NVARCHAR(2))
RETURN CAST((@y + N'-' + @m + N'-01') AS DATETIME)
END

或者,参考这篇:https://www.jb51.net/article/23285.htm 使用CONVERT函数,指定日期格式来转换,这样也可以获取指定日期所在月份的第一天。
复制代码 代码如下:

CREATE FUNCTION [dbo].[udf_FirstDayOfMonth]
(
@Date DATE
)
RETURNS DATETIME
AS
BEGIN
DECLARE @ym NVARCHAR(10) = CONVERT(varchar(8),GETDATE(),23)
RETURN CAST((@ym + N'01') AS DATETIME)
END

相关文章

  • 索引的原理及索引建立的注意事项

    索引的原理及索引建立的注意事项

    聚集索引,数据实际上是按顺序存储的,数据页就在索引页上。就好像参考手册将所有主题按顺序编排一样。一旦找到了所要搜索的数据,就完成了这次搜索,对于非聚集索引,索引是安全独立于数据本身结构的,在索引中找到了寻找的数据,然后通过指针定位到实际的数据
    2012-07-07
  • SQL Server日志恢复还原数据的操作流程

    SQL Server日志恢复还原数据的操作流程

    有时开发过程中由于不小心或者程序出现错误导致错误删除数据,或者由于计算机以外引起数据遭到破坏,这时候可以采用日志进行恢复,所以本文给大家介绍了SQL Server日志恢复还原数据的操作流程,需要的朋友可以参考下
    2024-09-09
  • 通过格式良好的SQL提高效率和准确性

    通过格式良好的SQL提高效率和准确性

    在本文中,作者将分享如何通过格式良好的SQL语句提升生产率,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • Sql Server2012 使用IP地址登录服务器的配置图文教程

    Sql Server2012 使用IP地址登录服务器的配置图文教程

    最近在使用NFineBase框架+c#做一个系统的时候,在使用sql server 2012 连接数据库的时候,在使用过程中遇到了几个问题,下面小编给大家分享Sql Server2012 使用IP地址登录服务器的配置图文教程,一起学习吧
    2017-07-07
  • SQL Server数据库设置自动备份策略的完整步骤

    SQL Server数据库设置自动备份策略的完整步骤

    这篇文章主要给大家介绍了关于SQL Server数据库设置自动备份策略的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用sql server具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • 如何在navicat中利用sql语句建表+添加数据

    如何在navicat中利用sql语句建表+添加数据

    这篇文章主要给大家介绍了关于如何在navicat中利用sql语句建表+添加数据的相关资料,Navicat是一套快速,专为简化数据库的管理及降低系统管理成本而设,它的设计符合数据库管理员、开发人员及中小企业的需要,需要的朋友可以参考下
    2023-10-10
  • sql中的常用的字符串处理函数大全

    sql中的常用的字符串处理函数大全

    这篇文章主要介绍了sql中的常用的字符串处理函数,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • SQL Server无法收缩日志文件的原因分析及解决办法

    SQL Server无法收缩日志文件的原因分析及解决办法

    最近服务器执行收缩日志文件大小的job老是报错,小编抽时间把此问题的解决方案整理了一下,特此分享到脚本之家平台,供大家学习
    2016-01-01
  • SQL Server创建用户只能访问指定数据库和视图的操作步骤

    SQL Server创建用户只能访问指定数据库和视图的操作步骤

    本文介绍了如何在SQLServer中创建用户并限定其访问权限,包括创建用户、设置用户映射、设置只能访问指定的数据表或视图、给指定表或视图赋予具体权限和检查权限等步骤,这种设置可以防止用户访问到过多不必要的过程表和过程视图,提高数据安全性
    2024-10-10
  • SQL Server FileStream详解

    SQL Server FileStream详解

    FILESTREAM是SQL Server 2008中的一个新特性,允许以独立文件的形式存放大对象数据,而不是以往一样将所有数据都保存到数据文件中
    2015-12-12

最新评论