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

或者,参考这篇:http://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

(0)

相关推荐

  • asp.net 日期函数 某月的第一天和最后一天的日期

    #region 得到一个月的第一天和最后一天的日期 /// <summary> /// 得到本月的第一天日期 /// </summary> /// <returns>DateTime</returns> public static DateTime GetFirstDayOfMonth() { return GetFirstDayOfMonth(DateTime.Now); } /// <summary> /// 得到本月的最有一天的日期 ///

  • java得到某年某周的第一天实现思路及代码

    直接上代码 复制代码 代码如下: import java.util.Calendar; import java.util.Date; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * 日期工具类 * @author WXQ * */ public class DateUtils { private static final Log log = LogFactory.

  • asp.Net 中获取一周第一天,一月第一天等实现代码

    复制代码 代码如下: DateTime dt = DateTime.Now; //本月第一天时间 DateTime dt_First = dt.AddDays(-(dt.Day) + 1); Label1.Text = dt_First.ToString("yyyy-MM-dd"); //将本月月数+1 DateTime dt2 = dt.AddMonths(1); //本月最后一天时间 DateTime dt_Last = dt2.AddDays(-(dt.Day)); Label2

  • 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

  • 如何使用PHP获取指定日期所在月的开始日期与结束日期

    复制代码 代码如下: /**     * 获取指定日期所在月的开始日期与结束日期     * @param string $date     * @param boolean 为true返回开始日期,否则返回结束日期     * @return array     * @access private     */    private function getMonthRange( $date, $returnFirstDay = true ) {        $timestamp = str

  • ThinkPHP中获取指定日期后工作日的具体日期方法

    思路: 1.获取到查询年份内所有工作日数据数组 2.获取到查询开始日期在工作日的索引 3.计算需查询日期索引 4.获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_workday` ( `did` int(11) NOT NULL AUTO_INCREMENT, `exact_date` varchar(32) NOT NULL COMMENT '具体日期:格式date("Ymd");(20170205)', `date_year` varchar(32)

  • php获取指定日期之间的各个周和月的起止时间

    根据指定的前后两个日期,计算这两个日期之间各个周的起始时间和结束时间,以及各个月的起始时间和结束时间 日志格式化类 Date.class.php 复制代码 代码如下: <?php class Datefmt{    function __construct() {}   /**    * 根据指定日期获取所在周的起始时间和结束时间    */   public function get_weekinfo_by_date($date) {     $idx = strftime("%u&qu

  • java日期操作工具类(获取指定日期、日期转换、相隔天数)

    本文实例为大家分享了java日期操作工具类,获取指定日期前一天.后一天:日期转换:两个日期之间相隔天数等工具类,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class

  • PHP计算指定日期所在周的开始和结束日期的方法

    本文实例讲述了PHP计算指定日期所在周的开始和结束日期的方法.分享给大家供大家参考.具体实现方法如下: <html> <head> <title>计算一周开始结束日期</title> </head> <body> <form method="post" action="./index.html" enctype="utf-8"> <table> <

  • Python获取指定日期是"星期几"的6种方法

    目录 weekday() isoweekday() strftime() calendar pendulum Pandas 在Python进行数据分析时,按照日期进行分组汇总也是被需要的,比如会找到销量的周期性规律. 那么在用Python进行数据统计之前,就需要额外增加一步:从指定的日期当中获取星期几.比如2022年2月22日,还正好是正月廿二星期二,于是乎这一天登记结婚的人特别多.本文就以2022-02-22为例,演示Python获取指定日期是“星期几”的6种方法! weekday() dat

  • PHP获取指定日期是星期几的实现方法

    本文实例讲述了PHP获取指定日期是星期几的实现方法.分享给大家供大家参考,具体如下: <?php header("Content-type: text/html; charset=utf-8"); //获取星期方法 function get_week($date){ //强制转换日期格式 $date_str=date('Y-m-d',strtotime($date)); //封装成数组 $arr=explode("-", $date_str); //参数赋值

  • 利用shell获取指定日期前N天的日期

    一.创建测试文件test.sh #!/bin/sh . /etc/profile # 参数: # args[0] ,数据日期,日期格式yyyy-MM-dd # 取30天以前的日期 function get_date_30daysbefore() { sec=`date -d $1 +%s` sec_30daysbefore=$((sec - 86400*30)) days_before=`date -d @$sec_30daysbefore +%F` echo $days_before } if

  • 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 =========================

随机推荐