[SQL Server]SQL Server数据库中如何使用SQL语句查询指定日期当月的第一天?

SQL Server 作者: Rector 12 次阅读 · 读完约需 1 分钟 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

SQL Server数据库中,使用SQL语句如何查询一个指定日期当月的第一天?比如指定日期为2019-07-08,需要使用SQL计算出2019年7月1日即2019-07-01,应该如何实现呢?

方案一

使用SQL的内置函数DATEADDDATEDIFF,如下:

SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth

方案二

使用SQL的内置函数DATEFROMPARTS,如下:

SELECT DATEFROMPARTS(YEAR(@mydate),MONTH(@mydate),1)

方案三

如果在SQL SERVER 2012及以上版本,则可以使用SQL的EOMONTH函数,如下:

SELECT DATEADD(DAY,1,EOMONTH(@mydate,-1))

方案四

创建一个用户自定义函数,如下:

CREATE FUNCTION [dbo].[GetFirstDayOfMonth] ( @InputDate    DATETIME )
RETURNS DATETIME
BEGIN
    RETURN CAST(CAST(YEAR(@InputDate) AS VARCHAR(4)) + '/' + 
                CAST(MONTH(@InputDate) AS VARCHAR(2)) + '/01' AS DATETIME)
END
GO

阅读了该文章的人还浏览了...

本文永久链接码友网 » [SQL Server]SQL Server数据库中如何使用SQL语句查询指定日期当月的第一天?

发布于: 2019-07-08 17:29:17
分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册