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

获取指定日期月份的第一天,你可以使用DATEADD函数,减去指定日期的月份过去了的天数,即可。

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

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

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

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

或者,参考这篇:http://www.cnblogs.com/insus/articles/1554836.html 使用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

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

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

时间: 2024-11-19 07:13:05

获取指定日期所在月份的第一天的相关文章

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

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

php获取指定日期所在星期的开始时间与结束时间

function getWeekRange($date){    $ret=array();    $timestamp=strtotime($date);    $w=strftime('%u',$timestamp);    $ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);    $ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);    retur

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

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

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

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

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

Java 获取指定日期的方法总结 -转

格式化日期 String-->Date  或者 Data-->String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    Date  date = sdf.parse("2009-11-04");//String-->Date String  sdate  = sdf.format(date );// Data-->String ==================

获取指定日期之间的各个周和月

日志格式化类 Date.class.php <?php class Datefmt{     function __construct() {}     /**      * 根据指定日期获取所在周的起始时间和结束时间      */     public function get_weekinfo_by_date($date) {         $idx = strftime("%u", strtotime($date));         $mon_idx = $idx -

获取指定月 获取指定日期是星期几

public static List<ExcelDateHead> getByMonth(String date){ DateFormat dateFormat=new SimpleDateFormat("yyyy-MM"); Calendar c = Calendar.getInstance(); try { c.setTime(dateFormat.parse(date)); } catch (ParseException e) { // TODO: handle ex

PHP获取指定日期的上个月的日期 转

PHP获取指定日期的上个月的日期 function last_month_today($time){        $last_month_time = mktime(date("G", $time), date("i", $time),                    date("s", $time), date("n", $time), 0, date("Y", $time));        $