日期的最后一天和第一天

一,月份的最后一天

Returns the last day of the month that contains the specified date, with an optional offset.

EOMONTH ( start_date [, month_to_add ] )

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

declare @date date
set @date=getdate()

select EOMONTH(@date)
select 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

3,季度的最后一天

使用EOMONTH获取季度的最后一天,只需要指定季度最后一个月的任意一天即可,季度的最后一个月份是固定的:3*quarter_num,可能值是:3,6,9,12.

declare @date date
set @date=getdate()

select DATEPART(quarter,@date) as quarter_num

select EOMONTH(DATEFROMPARTS(year(@date),DATEPART(quarter,@date)*3,1))

二,月份的第一天
Returns a date value for the specified year, month, and day.

DATEFROMPARTS ( year, month, day )

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

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

declare @date date
set @date=getdate()

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

2,获取季度的第一天

首先使用DATEPART 函数获取当前日期的季度,可能值为:1,2,3,4.

declare @date date
set @date=getdate()

select DATEPART(quarter,@date) as quarter_num

季度的第一天是季度一个月的第一天,那么季度第一个月份 符合公式: (quarter_num-1)*3+1,等价于 quarter_num*3-2

declare @date date
set @date=getdate()

select DATEFROMPARTS(year(@date),DATEPART(quarter,@date)*3-2,1) 

参考doc:

DATEPART (Transact-SQL)

DATEFROMPARTS (Transact-SQL)

EOMONTH (Transact-SQL)

时间: 2024-10-14 03:07:50

日期的最后一天和第一天的相关文章

MSSQL 获取指定日期所在星期的第一天和最后一天日期 获取指定日期坐在月的第一天和最后一天

ufn_GetWeekFirstAndEndDay    获取指定日期所在星期的第一天和最后一天日期 ALTER FUNCTION [dbo].[ufn_GetWeekFirstAndEndDay](@tmpDate DATETIME)RETURNS  @tmpTable TABLE(            FirstDay DATETIME ,          EndDay DATETIME   )ASBEGIN    INSERT INTO @tmpTable    SELECT a.Fi

oracle 日期函数 求年的最后一天、第一天,月的最后一天

add_months(trunc(to_date('2013','yyyy') ,'yyyy'),12)-1  2013年最后一天 trunc(to_date('2013','yyyy') ,'yyyy')  2013年第一天 5月的最后一天 select last_day(to_date('2013-05','yyyy-mm')) d from dual oracle 日期函数 求年的最后一天.第一天,月的最后一天,布布扣,bubuko.com

获取指定日期下个月份的第一天

MS SQL Server自定义函数,指定一个日期,获取该日期的下一个月的第一天函数. 获取指定日期下个月份的第一天

获取指定日期所在月份的第一天

获取指定日期月份的第一天,你可以使用DATEADD函数,减去指定日期的月份过去了的天数,即可. CREATE FUNCTION [dbo].[udf_FirstDayOfMonth](    @Date DATE)RETURNS DATETIMEASBEGIN        RETURN CAST(DATEADD(day,1 - DAY(@Date), @Date) AS DATETIME)END CREATE FUNCTION [dbo].[udf_FirstDayOfMonth](    @

获取某一个日期所在周的第一天

由于统计需要,先要获取指定日期来获取该日期所在周的第一天,从而算出所在周是哪一天至哪一天.先看下面代码,是获取当天的日期. DateTime.Today 如果不是当天,而是指定日期,需要把它转换为日期. DateTime dt = Convert.ToDateTime("2013-08-02"); 如果,你把指定的日期,是一个非规则的日期格式的字符串,那得使用DateTime.ParseExact来转换http://www.cnblogs.com/insus/p/3231007.htm

[PHP学习教程 - 日期/时间]001.月份第一天&最后一天(Month First Day & Last Day)

引言:在时间处理上,对于前/后台人性化的展示当前月份最大天数,这个是网站必须要处理的一个方面.但通常这一块会由第三方类库直接包装,这里我们做一个简单的Mark. 今天,我们就为大家提供一个函数,获得指定月份的第一天和最后一天! 大家请直接看教程! 功能函数 函数非常简单,下面贴出使用方式 语法:array(firstday=>, lastday=>) = firstAndLastDay(年份, 月份) 参数解析: $y-年份 $m-月份 返回结果: array(本月开始时间时间戮,本月结束时间

使用SQL语句查询日期(当月天数,当月第一天,当月最后一天,本年最后一天,当月第一个星期) 日期转字符串

取某月天数:select day(dateadd(month,1,'2012-02-01')-1) --当月天数 select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0))) ---当月第一天 select dateadd(d,-day(getdate())+1,getdate()) ---当月最后一天 select dateadd(d,-1,dateadd(m,1,dateadd(d,-day(getdate())+1,g

c# 获取某日期所在周的第一天和最后一天

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WyfClass { public class tools { /// <summary> /// 得到本周第一天(以星期天为第一天) /// </summary> /// <param name="datetime"></param> /// &l

js获取日期昨天,明天以及上月最后一天的日期

js回去今天,明天,昨天的日期 1 function getDateStr(AddDayCount) { 2 var dd = new Date(); 3 dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期 4 var year = dd.getFullYear(); 5 var mon = dd.getMonth()+1; //获取当前月份的日期 6 var day = dd.getDate(); 7 return year