首页 / SQL Server / 正文

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

2149 2 发布于: 2019-07-08 读完约需2分钟

问题描述

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

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: C#/.NET应用程序编程开发中使用AutoMapper时如何忽略某个或某些属性的映射?

下一篇: [SQL Server]SQL Server数据库中如何返回INSERT INTO语句插入/写入数据后的记录值(比如ID等)?

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

分享扩散:

发表评论

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